STUDY_SEONMIN

2869. 달팽이는 올라가고 싶다 본문

STUDY/Baekjoon Algorithm

2869. 달팽이는 올라가고 싶다

Kululu_ 2021. 7. 7. 12:09

땅 위에 달팽이가 있다. 이 달팽이는 높이가 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