ABOUT ME

진심은 있으되 진심밖에 없는 태도는 취하지 말고, 불확실한 삶에서 내가 내릴 수 있는 가장 자유로운 선택은 오늘 하루를 행복하게 사는 것:)

  • [백준 2869] 달팽이는 올라가고 싶다
    [공부] 코테/백준 2024. 3. 12. 15:07

     

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

     

    2869번: 달팽이는 올라가고 싶다

    첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)

    www.acmicpc.net

     

    달팽이는 V까지 올라가야한다. 낮에 A만큼 올라가고 밤에 B 만큼 내려오는데 V에 도달했으면 내려오지 않는다고 한다.

    A : 낮에 올라간 거리
    B : 밤에 내려온 거리
    V : 목표 높이

    A : 2, B : 1, V : 5 라고 가정한다면,

    1일째 올라간 높이 : 1 남은 : 4
    2일째 올라간 높이 : 2 남은 : 3
    3일째 올라간 높이 : 3 남은 : 2
    4일째 올라간 높이 :  5 남은 : 0 => V에 도달 할 경우는 B만큼 떨어지지 않는다.

    그럼으로 총 걸린 날은 4일

    만약 단순히 V / (A-B) 라고 생각했다면 이 식은 사용 할 수 없다.
    마지막 날은 B만큼 내려올 필요가 없으므로 해당 식은  (V-A) / (A-B) 로 바꿔서 사용해야 한다.
    여기서 (V-A)는 마지막에 올라갈 A만큼의 거리를 남겨둔다는 의미이다.

    (V-A) / (A-B) 식의 해당 값 즉 걸린 일 수를 day라고 하고 값을 구해보면 두가지 패턴이 존재한다.
    ・ 딱 맞아 떨어질 경우 : 남은 A만큼의 +1을 해주면 된다.
    ・ 나머지가 존재할 경우 : 나머지의 +1 과 남은 A의 +1 즉 +2를 해주면 된다.  
     
    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));
    
            String text = br.readLine();
    
            StringTokenizer st = new StringTokenizer(text, " ");
    
            br.close();
    
            // 낮에 올라 갈 수 있는 높이
            int a = Integer.parseInt(st.nextToken());
            // 밤에 미끄러지는 높이
            int b = Integer.parseInt(st.nextToken());
            // 높이
            int v = Integer.parseInt(st.nextToken());
            // 걸린 날
            int day = 0;
    
            day = (v-a) / (a-b);
            if ((v-a)%(a-b) != 0) {
                day+=2;
            } else {
                day++;
            }
    
            System.out.println(day);
        }    
    }

     

    '[공부] 코테 > 백준' 카테고리의 다른 글

    [백준 1914] 하노이 탑  (0) 2024.03.14
    [백준 1978] 소수 찾기  (0) 2024.03.14
    [백준 1152] 단어의 개수  (0) 2024.03.12
Designed by Tistory.