코딩일지/python 백준 알고리즘

python 백준 알고리즘 2689번: 달팽이는 올라가고 싶다

야언 2022. 9. 14. 19:07

https://www.acmicpc.net/problem/2869

 

2869번: 달팽이는 올라가고 싶다

첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)

www.acmicpc.net

 

 

A*day - B*day >= V 라는 간단한 생각으로 (올라가는 거리)와 (내려오는 거리)의 차를 (높이)로 나누어 +1하는 방식으로 접근하면 나무 정상에 올라갔을때 더이상 떨어지지 않는점을 고려하지 못한다. 이 점에 주의

 

A*day - B*day >= V-B(다 올라가고 나면 더이상 내려가지 않으므로)

day >= (V-B) / (A-B)

 

 

내 제출

a,b,v = map(int,input().split())
day = (v-b)/(a-b)  # 걸리는 일수, 정상에 올라가서는 미끄러지지 않기때문에 (v-b)
print(int(day) if day == int(day) else int(day)+1)  # 딱 떨어지지 않는이상 무조건 다음날임