본문 바로가기

코딩 테스트/백준 파이썬 문제 풀이

[백준 2869번 파이썬] 달팽이는 올라가고 싶다

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

 

이번 문제는 세 번째 입력값만큼 크기의 나무 막대에서

낮에 첫 번째 입력값만큼 올라가고, 밤에 두 번째 입력값만큼 미끄러지는 달팽이가

나무 막대를 모두 올라가는 데 며칠이 걸리는지 출력하면 된다

 

import math

A, B, V = map(int, input().split())
day = math.ceil((V-A)/(A-B))+1
print(day)

 

ceil이라는, 수식 결과 소수값이 나오면 무조건 올림하는 함수를 이용해서

나무 막대 높이 - 낮에 움직이는 거리

낮에 움직이는 거리 - 밤에 미끄러지는 거리

결과값을 나누고 +1을 해주는데

그 이유는 우선 나무 막대 높이에서 낮에 움직이는 거리를 뺀 수로 나누기를 했기 때문에

첫 날 낮에 움직인 것이 자연스럽게 이 수식에서 제외되기 때문이다

그리고 첫날 낮에 움직인 거리를 제외하고는 밤과 낮 순서로 계산해야

낮에 전부 다 올랐음에도 밤에 미끄러지는 거리가 굳이 같이 계산되어 오류가 나오는 상황을 예방할 수 있다