MapleStory Finger Point

백준 알고리즘

백준 알고리즘 2869번 달팽이는 올라가고 싶다 (파이썬)

吳鍾振 2022. 8. 5. 21:16

문제 :

땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.

달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.

달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.


import math

A, B, V = map(int, input().split())

print(math.ceil((V - B) / (A - B)))

 

코드 설명 :

import math

A, B, V = map(int, input().split())

# 기본 수식은 (A - B) * x >= V 이다.
# x를 기준으로 모두 이항하면, x >= V / (A - B) 가 되는데,
# 분자인 V를 그냥 쓰게 되면, 높이에 도달했을 때도 밤에 내려오게 되는데,
# 높이에서 밤에 다시 내려가는 만큼의 값을 빼면 밤에 내려오는 것을 계산하지 않는다.
# 따라서 수식은 (V - B) / (A - B) 가 되는데 소숫점이 나올 경우에
# 이는 이미 올라갔다는 뜻이라 math 모듈을 사용하여 올림을 해주면 된다.

print(math.ceil((V - B) / (A - B)))

 

결과 :

 

반응형