Programming/백준 문제풀이
[백준] 2869번 달팽이는 올라가고 싶다 C/C++ 풀이
bjloed
2020. 4. 21. 22:44
출처: 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++ 풀이