본문 바로가기
Computer Engineering/백준

[백준/파이썬3/2869] 달팽이는 올라가고 싶다

by UC우공 2019. 12. 17.

오답

뭐 정답률 보고 인지는 하고 있었지만, 우선 그냥 조건문(if문)을 사용하여 대충 짜보았다.

A,B,V= map(int, input().split())
count = 1
while V>0:
    if V>0:
        V-=A
    if V>0:
        V+=B
        count+=1
print(count)

이렇게 짜도, 답이 나오기는 한다. 하지만! "시간초과"

정답

A,B,V = map(int,input().split())
k = (V-B)/(A-B)
print(int(k) if k == int(k) else int(k)+1)

 시간을 최대한 줄여야 되는 코드를 짜는게 관건이다. if문에서 두 변수를 비교하게 되면 비교연산결과를 기다리느라 시간이 소요될 것이다.

 그래서 부등호 없이 단순히 k=(V-B))/(A-B) 식으로 한번에 정리!

댓글