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

백준 알고리즘의 2869번 문제이다.


  1. 일단 되게는 하자
A, B, V = map(int, input().split(" "))

day = 1 + int((V - A) / (A - B))
if (V - A) % (A - B) > 0:
    day += 1
print(day)

이 문제는 시간제한이 걸리지 않도록 해야 한다고 생각하며 시작했다.
입력 값이 주어지고, 날이 지남에 따라 달팽이의 높이 변화를 낮을 기준으로 나타내면,

입력 예시: 5 1 19

day 1 = 5
day 2 = 9
day 3 = 13
day 4 = 17
day 5 = 21
더해지는 값은 5, 4, 4, 4, 4 인 것을 알 수 있다.
이는 다른 입력 값에서도 동일한 패턴을 보인다.

그러므로 19 - 5에서 4를 나눈 몫을 더해주면 된다.
단, 19 - 5에서 4를 나눈 나머지가 존재하므로 그에 따른 조건을 추가해 주었다.

좋은 웹페이지 즐겨찾기