백준 단계별로 풀어보기/기본 수학 1

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

jgs7784 2022. 9. 20. 20:26
728x90
반응형

 

달팽이는 올라가고 싶다 성공다국어

문제

땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.

달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.

달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <math.h>
 
int main()
{
    int A,B,V;
    
    scanf("%d %d %d",&A,&B,&V);
    int  day = (V-B-1)/(A-B) + 1;
    //printf("%d",day);
    printf("%d",day);
    return 0;
}
cs

V는 나무 막대의 길이

A는 올라가는 길이, B는 내려오는 길이

즉 하루에 올라가는 길이는 A-B 이다. (A>B)

 

나무 막대의 꼭대기에 도착하기 전날,

달팽이는 최대 V-B 미만의 높이에 올랐을 것이다.

(V-B에는 절대 도달했을 수 없다 왜냐하면 V에서 B만큼 내려와야 되는데,

꼭대기에 도착하기 전날이므로, V에는 도달하지 못한 날이기 때문이다.)

 

따라서 달팽이가 꼭대기에 올라가는 데 걸리는 일수 가day 라면

day < (V-B)/(A-B) 이다. (달팽이가 V-B 만큼 가지 못했기 때문)

 

올림을 사용할 수 있겠지만, 

A,B,V가 정수라는 점을 이용하여

달팽이가 오른 높이를 V-B-1 이라 하고, 마지막에 1을 더해줌(도착한 날)으로서 

식을 완성할 수 있다. 

반응형