출처: https://www.acmicpc.net/problem/2869
풀이
먼저 달팽이가 올라가는 규칙을 찾아보도록 하자.
먼저 달팽이가 하루에 올라갈 수 있는 거리는 \(A-B\) 이다.
하지만, \(A-B\) 라고 생각해 \(N\)값을 계산하는건 큰 오류이다.
달팽이는 나무 막대를 모두 올라가면, 밤에는 미끄러지지 않는다.
즉, 달팽이가 미끄러지는 최대 지점을 찾아야한다.
최대 지점은 \(V-A\) 라고 계산할 수 있다.
달팽이가 나무 막대를 전부 올라가는데 걸리는 일수가 \(S\)이고,
최대 지점을 \(L\)이라고 가정하면 식은 다음과 같다.
$ N=\frac{L}{A-B}+1 $
하지만 이 수식에는 함정이 있다. 다음 예시를 보도록 하자.
$ N=\frac{3}{4-2}+1 $
이 수식대로라면 답은, N=2.5이다.
하지만 N의 type은 int형이므로 저 수식에서의 나머지가 존재할 경우는 N+1이 답이다.
C/C++ 풀이
'Programming > 백준 문제풀이' 카테고리의 다른 글
[백준] 1011번 Fly me to the Alpha Centauri C/C++ 풀이 (0) | 2020.04.23 |
---|---|
[백준] 2775번 부녀회장이 될테야 C/C++ 풀이 (0) | 2020.04.23 |
[백준] 1193번 분수 찾기 C/C++ 풀이 (0) | 2020.04.21 |
[백준] 2292번 벌집 C/C++ 풀이 (0) | 2020.04.20 |
[백준] 2193번 이친수 C/C++ 풀이 (0) | 2020.04.19 |