문제 요약:
달팽이가 길이 V 미터의 나무를 오른다.
낮에는 A 미터를 올라가고, 밤에는 B 미터를 미끄러져 내려온다.
정상에 올라간 이후에는 미끄러지지 않는다.
주어진 A, B, V 에 따라 올라가는 데 며칠이 걸릴 것인지 구하는 프로그램을 작성하라.
제약:
제한시간 0.15초, 메모리 128MB,
1 <= B < A <= V <= 1,000,000,000
예제 1 입력. | 예제 1 출력. |
2 1 5 | 4 |
예제 2 입력. | 예제 2 출력. |
5 1 6 | 2 |
예제 3 입력. | 예제 3 출력. |
100 99 1000000000 | 999999901 |
정답코드:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include <iostream>
using namespace std;
int main()
{
int A, B, V;
int nTmpDist, nReturnVal;
cin >> A >> B >> V;
// 거꾸로 정상에서부터 생각한다.
// 마지막 Step은 무조건 A 만큼.
nReturnVal = 1;
nTmpDist = (V - A);
// 남은 거리 (V - A) 는
// 하루에 갈 수 있는 거리 (A-B) 로 몇 번에 걸쳐 가야하는지 계산.
if ((nTmpDist % (A - B)) == 0)
{
// 나누어 떨어지는 경우 그대로 계산.
nReturnVal += (nTmpDist / (A - B));
}
else
{
// int형은 나누어 떨어지지 않는 경우 나머지는 버림된다.
// (V - A) 보다 더 높은 위치까지 가려면 몫 + 1.
nReturnVal += ((nTmpDist / (A - B)) + 1);
}
// 답 출력.
cout << nReturnVal;
return 0;
}
|
cs |
문제 원본 링크:
'알고리즘 문제풀이' 카테고리의 다른 글
[알고리즘] 백준 1978번 "소수 찾기" (C/C++) - Don 임베디드 (2) | 2022.03.22 |
---|---|
[알고리즘] 백준 10757번 "큰 수 A+B" (C/C++) - Don 임베디드 (4) | 2022.03.19 |
[알고리즘] 백준 2839번 "설탕 배달" 문제 풀이 (C/C++) - Don 임베디드 (6) | 2022.03.17 |
[알고리즘] 백준 2775번 "부녀회장이 될테야" 문제 풀이 (C/C++) - Don 임베디드 (4) | 2022.03.15 |
[알고리즘] 백준 10250번 "ACM 호텔" 문제 풀이 (C/C++) - Don 임베디드 (2) | 2022.03.14 |