99클럽 코테 스터디 13일차 TIL + 달팽이는 올라가고 싶다

Saang Bum Kim·2024년 5월 4일
0

99클럽

목록 보기
28/59

문제

링크텍스트

난관

  • 다음과 같이 simulation하면 시간초과에 걸린다.
d0 = 0
V0 = V
while V0 > 0:
    V0 -= A
    d0 += 1
    if V0 <= 0:
        break
    V0 += B
  • 만약에, d0 (= (V-.1) // (A-B) + 1) 일 지나서 시작하면 그 전에 낮에 A 만큼 올라가다 V (= 나무 막대 높이)를 넘어 꼭대기에 닿아서 d0 일 보다 전에 모두 올라갔을 수 있다.
  • 그러므로 낮 동안 최대 올라가는 거리 A 만큼은 남겨 놓은 거리 V0 (= V - A)를 갈 수 있는 날에서 시작 해야 한다.
  • d = (V-A-0.1) // (A-B) + 2
  • 위에서 -0.1과 +2와 같은 세부 detial에 많은 시간을 썼다.
  • 역시 아직 '손으로 그려보는 연습 더 하기'가 부족하다 !!!

결과

A,B,V = map(int, input().split())
d = int((V - A - .1) // (A - B)) + 2
print(d)

profile
old engineer

0개의 댓글