Algorithm/BOJ

[백준 알고리즘/BOJ/C++] 2869 달팽이는 올라가고 싶다

pinevienna 2021. 1. 16. 22:33

 

 

달팽이가 낮에는 A미터 올라가고 밤에는 B미터 미끄러진다..

높이가 V미터인 막대의 정상에 올라가기 위해 며칠이 걸리는지 구하는 문제

시간제한이 있는 문제다... 잘못풀면 시간초과가 뜬다 (경험담)

 

주의할 점은 정상에 올라가면 미끄러지지 않는다는 점이다

그러니까 밤에 미끄러진 후 V-A미터에 도달하면 그 다음날에 바로 정상에 올라갈 수 있다!!

도달하지 않는다면..? 2미터 모자라면..? 3미터.. 4미터 막 모자라면..?은 생각할 필요가 없다

어쨌든 (V-A)를 (A-B)로 나누었을 때 1미터라도 남는다면 나눈 값에서 이틀 더 걸리는 것이다

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main(void) {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
 
    int a, b, v;
 
    cin >> a >> b >> v;
 
    if ((v - a) % (a - b) == 0)
        cout << (v - a) / (a - b) + 1;
    else
        cout << (v - a) / (a - b) + 2;
}
cs

 

int main(void) 밑에 세 줄은 시간을 줄이기 위해 쓴거다

정확한 설명은..기억이 안나지만 시간이 확 준다

+ endl 말고 "\n"을 쓰면 시간단축에 도움이 된다