본문 바로가기

Algorithm

(C++) - 백준(BOJ) 2869번 : 달팽이는 올라가고 싶다

반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <algorithm>
using namespace std;
 
int r, l;
int main() {
    int a, b, v, ans = 0;
    cin >> a >> b >> v;
    //낮에는 a미터 올라가고 b미끄러짐 정상에 올라가면 미끄러지지 않음
    //a는 무조건 a-b보다 크다
    //따라서 v-a 가 a-b로 나누어떨어지면 a만큼만 올라가면 되므로 ans 는 (v-a) / (a-b) + 1이다
    //나누어 떨어지지 않는다면 a+(a-b보다 작은 거리) 만큼 올라가야하므로 하루가 더 필요하므로 ans 는 (v-a) / (a-b) + 2이다
    int last = v - a;
    if (last % (a - b) == 0) { ans = last / (a - b) + 1; }
    else { ans = last / (a - b) + 2; }
    cout << ans << '\n';
}
cs