본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 2869 달팽이는 올라가고 싶다.

by 까망 하르방 2021. 7. 21.
반응형

출처https://www.acmicpc.net/problem/2869

Approach

문제를 반복문으로 접근하기에는 시간 초과(TLE) 발생한다.

<수학> 카테고리에 있는 만큼 O(1)에 결과를 도출할 수 있는 식이 필요하다.

 

하루를 기준으로 생각하면 올라가고 / 내려가기 때문에 {A - B}만큼 이동하지만

정상에 도달하면 내려오는 것을 하지 않는 것에 유의해야 한다.

 

A = 5, B = 2, V = 5 라고 했을 때,

하루도 되지 않는 시간에 정상에 올라갈 수 있는 것이다.

(1 ≤ B < A ≤ V ≤ 1,000,000,000)

 

하루에 올라가는 거리 day = (A - B) 이다.

정상에 도착한 날을 보면 올라가는 것만 고려한다.  (V - B) 이다.

 

(V - B) / (A - B) 결과가 나누어 떨어지면 해당 결과만큼 소요되고,

나누어 떨어지지 않는 경우 하루(1 day)의 시간이 더 필요하다. → +1


#include <stdio.h>


int main() {
    // freopen("input.txt", "r", stdin);
    int A, B, V;
    scanf("%d %d %d", &A, &B, &V);
    
    printf("%d", (V - B) % (A - B) == 0 ? (V - B) / (A - B) : (V - B) / (A - B) + 1);
}
반응형

'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 10845 큐  (0) 2021.07.22
[BOJ] 백준 10828 스택  (0) 2021.07.22
[BOJ] 백준 10773 제로  (0) 2021.07.21
[BOJ] 백준 1712 손익분기점  (0) 2021.07.05
[BOJ] 백준 2504 괄호의값  (0) 2021.06.05

댓글