[백준] 2869번 달팽이는 올라가고 싶다 C/C++ 풀이
Programming/백준 문제풀이

[백준] 2869번 달팽이는 올라가고 싶다 C/C++ 풀이

출처: 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++ 풀이