[백준/2869/Java]달팽이는 올라가고 싶다
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] arr = br.readLine().split(" ");
int A = Integer.parseInt(arr[0]); // 낮
int B = Integer.parseInt(arr[1]); // 밤
int V = Integer.parseInt(arr[2]); // 높이
int day = (V - B) / (A - B);
if((V - B) % (A - B) != 0) {
day++;
}
System.out.println(day);
}
}
후기
공식을 알면 쉽게 풀 수 있는 문제입니다.
반복문을 쓰면 시간초과가 되어버리므로 공식을 쓰도록 합시다.
주의할점
원래 [높이 / 낮 - 밤]으로 공식을 짜는게 좋지만 정상에 올라간 후에 미끄러지지 않는다는 조건이 붙어있습니다.
낮에 높이를 초과해버리면 정상에서 더이상 미끄러지지 않도록 밤 처리를 넣으면 안됩니다. [높이 - 밤 / 낮 - 밤]
그러므로 낮에 높이를 초과하지 않도록 밤을 빼서 정상을 초과하지 않도록 처리를 해 주어야 합니다.
그리고 위의 처리가 끝난 후에 정상에 올라갔는지를 확인하고 만약 정상에 올라가지 못했다면 날짜를 하루 더 늘려주는 것으로 처리를 하면 됩니다.
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준/10250/Java]ACM호텔 (0) | 2022.05.01 |
---|---|
[백준/1065/Java]한수 (0) | 2022.04.30 |
[백준/1712/Java]손익분기점 (0) | 2022.04.21 |
[백준/5622/Java]다이얼 (0) | 2022.04.17 |
[백준/1110/Java]더하기 사이클 (0) | 2022.04.17 |