코딩테스트 연습 기록

이종길·2021년 12월 28일
0

코딩테스트 연습

목록 보기
22/128

2021.12.28 8일차

백준 2869번 (달팽이는 올라가고 싶다)

문제

땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.

달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.

달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.

나의 풀이

  1. 이동: A, 감소: B, 높이: V
  2. 무조건 한 번은 A, 1일
  3. A - B로 날짜 계산
  4. (V - A) / (A - B), 몫만큼 날짜 + 1일
  5. 나머지가 생기는 경우에는 1일 추가
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        int V = Integer.parseInt(st.nextToken());

        int count = (V - A) / (A - B) + 1;

        if ((V - A) % (A - B) != 0) {
            count++;
        }

        System.out.println(count);
    }
}

생각하기

  • JAVA11, 버퍼 방식 사용
    버퍼(Buffer)
    -데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 데이터를 보관하는 임시 메모리 영역
    -입출력 속도 향상
    -버퍼를 이용한 입력: BufferedReader
    -버퍼를 이용한 출력: BufferedWriter
  • StringTokenizer
    countToken() - int, 꺼내지 않고 남아있는 토큰의 수
    hasMoreToken() - boolean, 남아 있는 토큰이 있는지 여부
    nextToken() - String, 토큰을 하나씩 꺼내옴
profile
Go High

0개의 댓글

관련 채용 정보