반응형
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
구상
올라가는데 걸리는 날을 x라 하자.
달팽이는 매일매일 $(a-b)$만큼 이동한다.
마지막 날에는 a만큼 올라가면 정상에 도착하므로 b만큼 미끄러지지 않는다. 따라서 $(x-1)$일 동안 올라갔다 미끄러지고, 마지막 날에는 a만큼 올라가서 v미터 이상을 올라간다. 이를 식으로 나타내면 $(a-b)(x-1)+a\geq v$가 된다.
$x$에 대해 정리하면 $x\geq \frac{v-b}{a-b}$이다. 이 식을 만족하는 가장 작은 $x$값이 정답이다.
우변이 정수라면 그 값이 그대로 정답이고, 실수라면 하루 더 가야 하므로 1을 더한다.
코드
a, b, v = map(int, (input().split()))
day = (v - b) / (a - b)
if int(day) == day:
print(int(day))
else:
print(int(day) + 1)
반응형
'프로그래밍 > Baekjoon' 카테고리의 다른 글
(파이썬) 백준 2665. 부녀회장이 될테야 (0) | 2020.09.04 |
---|---|
(파이썬) 백준 10250. ACM 호텔 (0) | 2020.09.03 |
(파이썬) 백준 1193. 분수찾기 (0) | 2020.08.31 |
(파이썬)백준 1065. 한수 (0) | 2020.08.29 |
(파이썬)백준 8958. OX퀴즈 (0) | 2020.08.28 |