백준 단계별로 풀어보기/기본 수학 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을 더해줌(도착한 날)으로서
식을 완성할 수 있다.
반응형