[백준_2869] 달팽이는 올라가고 싶다 - JAVA

jm_25·2021년 11월 21일
0

알고리즘

목록 보기
9/40
post-thumbnail

문제 출처

https://www.acmicpc.net/problem/2869

풀이

수학 문제

  • 달팽이가 하루에 올라갈 수 있는 거리 : A - B
  • 높이 V 에서 하루 올라갈 수 있는 거리를 제외한 올라갈 수 있는 거리 : V - A
  • 정상에 올라가면 미끄러지지 않으므로, V-A / A-B의 값에 + 1을 해준다.
    만약 나눈 값이 0.X를 대비해 Math.ceil() 함수를 사용하여 올림을 해준다.
  • 시간초과에 민감한 문제이므로 출력시 BufferedWriter 이용

코드

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
        Double A = Double.valueOf(stringTokenizer.nextToken());
        Double B = Double.valueOf(stringTokenizer.nextToken());
        Double V = Double.valueOf(stringTokenizer.nextToken());
        int day = (int) (Math.ceil((V - A) / (A - B)) + 1);
        bufferedWriter.write(String.valueOf(day));

        bufferedWriter.flush();
        bufferedWriter.close();
        bufferedReader.close();
    }
}

채점 결과

profile
매일 매일 한 개씩

0개의 댓글