본문 바로가기

알고리즘/백준

[백준/2869/Java]달팽이는 올라가고 싶다

[백준/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