백준-2869 : 달팽이는 올라가고 싶다(Python)

잡초·2023년 4월 26일
0
post-thumbnail
a,b,v = map(int,input().split())
k = 0	#올라가는 데 걸리는 일수
d = 0	#올라간 높이
while 1:
    k+=1
    if a*k-b*(k-1)>=v:
        break
print(k)

하지만 이와같은 코드는 부등식의 계산이 이루어지기 때문에 시간초과가 생긴다.
따라서 A,B,V가 입력되면 바로 답이 나오는 구조여야 한다.

무슨말이냐 하면, 위와 같은 코드는 K의 값을 점차 늘리기 때문에 결과적으로 K의 값만큼 while문을 반복한다.

하지만 if구문의 조건식,

ak-b(k-1) => v 를 이항시켜 정리하면 k>=(v-b)/(a-b)로 바꿀 수 있다. 이를 통해 k의 값을 바로 도출 할 수 있다.

a, b, v = map(int, input().split())
k = (v - b) / (a - b)
print(int(k) if k == int(k) else int(k) + 1)
profile
개발자가 되고싶은 잡초

0개의 댓글