TIL 28 | 달팽이는 올라가고 싶다 (백준 2869 python)

Gom·2021년 3월 5일
0

Algorithm

목록 보기
7/48
post-thumbnail

# 입력 

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

# 문제풀이 

high = V-A
if V == A :
    print(1)
elif high%(A-B) == 0 :
    print(high//(A-B)+1)
else :
    print((V-A)//(A-B)+2)
  • 미끄러져도 해가 뜨면 다시 올라가는 달팽이를 응원하게 된다.
  • 예제에 나온 숫자로는 계산이 되었지만 몇 번이나 반례가 발생하여 애먹었던 문제이다.
  • 정상에 도착하면 미끄러지지 않기 때문에 밤이 되어 미끄러지기 전에 정상에 도달하면 날짜 카운트가 종료된다. 이러한 특성을 고려하여 나무 높이에서 A를 차감한 만큼의 높이를 목표로 설정하였다. A만큼의 이동시간도 하루로 봐야하기 때문에 마지막에 하루를 더해주는 것을 잊지말자.
  • 하루동안 이동 가능한 거리(A-B)로 목표 높이를 나누었을 때 나머지 값이 존재한다는 것은 하루만큼 더 이동해야 하는 것이므로 다른 값보다 하루를 더 더해주어야 할 것이다.
profile
안 되는 이유보다 가능한 방법을 찾을래요

0개의 댓글