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

NCOOKIE·2023년 2월 10일
0

알고리즘

목록 보기
3/34

문제링크

풀이

하루 동안 달팽이가 올라간 거리를 up, 내려가는 거리를 down, 총 올라가야하는 거리를 v라고 한다. 이 때 아침에 up만큼 올라가서 꼭대기에 도달한다면 밤의 down은 계산하지 않아도 된다. 이 부분이 핵심이다. 따라서 처음 계산을 할 때 v에서 up만큼 빼주고 시작한다.

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 up = Integer.parseInt(st.nextToken());
        int down = Integer.parseInt(st.nextToken());
        int v = Integer.parseInt(st.nextToken());

        v -= up;
        int q = v / (up - down) + 1;	// 총 걸린 시간
        int r = v % (up - down);		// 남은 거리

        if (r > 0) {					// 남은 거리가 1보다 크거나 같으면 하루 더 가야함
            q++;
        }

        System.out.println(q);
    }
}
profile
일단 해보자

0개의 댓글

관련 채용 정보