STUDY_SEONMIN
2869. 달팽이는 올라가고 싶다 본문
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
A, B, V = map(int,input().split())
d = (V-A)//(A-B)
if (V-A)%(A-B) == 0:
print(d + 1)
else:
print(d + 2)
- 달팽이가 하루에 이동하는 거리는 낮에 +A 밤에 -B 만큼해서 총 A-B 입니다.
단, 마지막 날에는 A만큼 올라가서 목표 지점에 도착하면 B만큼 내려오는 것은 계산을 하지 않아야 합니다.
이 점을 고려해 막대의 높이가 V-A인 것으로 계산합니다. - (V-A)/(A-B)가 나누어 떨어질 경우
-> 이 경우는 밤에 자고 일어났을 때 V-A 지점에 위치한 것이므로 그날 올라가기만 하면 V지점에 도착하게됩니다. 따라서 마지막으로 +1을 해주면 총 소요일자를 구할 수 있습니다. - (V-A)/(A-B)가 나누어 떨어지지 않는 경우
-> 이 경우는 밤에 자고 일어났을 때 V-A 지점보다 살짝 못 미치는 지점에 위치한 것입니다. 이 위치를 V-A-C라고 하겠습니다.(C < A-B)
이 때는 다음날 올라간다고 해도 V-C지점에 도달하게 되고 밤에 미끄러지게 되면 V-B-C 지점에 위치하게 됩니다.
이 상태에서 하루를 더 올라가면 V+A-B-C 지점에 위치하게 되는데 A-B-C > 0이므로 목표지점인 V에 도달하게 되는 것입니다.
따라서 구해진 몫에 + 2를 해주면 총 소요일자를 구할 수 있습니다.
'STUDY > Baekjoon Algorithm' 카테고리의 다른 글
2775. 부녀회장이 될테야 (0) | 2021.07.08 |
---|---|
10250. ACM 호텔 (0) | 2021.07.08 |
1193. 분수찾기 (0) | 2021.07.07 |
2292. 벌집 (0) | 2021.07.07 |
1712. 손익분기점 (0) | 2021.07.07 |
Comments