22.04.04 코테

653 단어 코테코테

작성시간이 0시 2분이지만 아무튼 4월 4일입니다.

파이썬 2869 달팽이는 올라가고 싶다

시간초과코드

a, b, c = map(int, input().split())
cnt = 0
high= 0 

while high<c:
    high += a-b
    cnt +=1
print(cnt)

시간초과가 난 이유를 찾아보니 부등식 계산이 생각보다 오래걸린다고 합니다.

이를 해결하기 위해서는 (a-b)*n +a = c로 바로 계산을 해주어야 한다고 합니다.
(마지막날에는 정상으로 올라가면 b만큼 내려올 일이 없으므로 +a만 합니다)

위 식을 정리하여서 (a-b)n = c-a => n = (c-a)/(a-b)와 같은 방식으로 계산하면 풀 수 있다고 합니다.

출처 : https://ooyoung.tistory.com/85

좋은 웹페이지 즐겨찾기