## solution
달팽이가 높이 v미터인 나무 막대를 올라간다.
낮에는 A미터를 올라가고, 밤에는 B미터를 미끄러진다. 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면 며칠이 걸리는지 구하기.
주어지는 숫자가 커서 하루씩 체크하는걸로는 안될 것으로 보인다.
하루 올라간 길이는 A-B인데, 다 올라간것을 체크할때는 (A-B)+B 했을때 V보다 크거나 같다면, 그날 다 올라간 것으로 처리해야 한다. 다 올라가지 못했다면 낮에 밤에 -B 되는것임... 이렇게 생각하고 풀다가 규칙을 찾았는데.
전체 V에서 A화살표와 B화살표를 그리면서 따져보면 B는 A보다 한개씩 적은 상태가 된다.
day를 d라고 하면.
$$dA - (d-1)B = V$$
(정확히 V는 아니고 $(A-B)K$ )
이 식을 변형하여
$$d = (V-B)/(A-B)$$
이렇게 되는데 나머지 처리를 잘 해주어야 한다. 솔직히 이 뒷 부분은 예제를 이용해서 끼워맞췄다. d는 몫을 구하고, 나머지가 0보다 클 경우 d에 1을 더해주면 된다.
## CODE
```python
tmp = list(map(int,input().split()))
A,B,V = tmp[0], tmp[1], tmp[2]
day = (V-B)//(A-B)
if ((V-B)%(A-B)) > 0:
day += 1
print(day)
```
제출한 풀이
```python
a,b,v=map(int,input().split())
print(1-(v-a)//(b-a))
```
다른 풀이 참고, 처음 a,b,v를 바로 가져오면 된다. list로 바꿀 필요가 없다.
0 댓글