반응형
출처: 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 |
댓글