단, 정상에 올라가면 미끄러지지 않는다.
-> 정상까지 몇일이 걸리는가?
a, b, v = map(int, input().split())
if (v-b)%(a-b)==0: print((v-b)//(a-b))
else: print((v-b)//(a-b) + 1)
x
를 정상까지 걸리는 일 수 라고 하자.
처음엔 A*x - B*x >= V
를 만족시키면 된다고 생각했는데 이 경우는 '정상에 올라가면 미끄러지지 않는다'는 조건을 만족시키지 못한다.
정상에 올라가면 미끄러지지 않기때문에 마지막 일수에는 굳이 내려가지 않고 낮에 올라간 높이가 막대높이V를 넘기만 하면 된다.
따라서, A*x - B(x-1) >= V
를 만족시키는 x
를 구해야 한다.
식을 정리하면,
Ax - B(x-1) >= V
Ax - Bx + B >= V
(A-B)x >= V-B
x >= (V-B)/(A-B)
최종적으로는 x >= (V-B)/(A-B)
이다.
이때 x
는 정수이어야 한다.
a,b,v = map(int,input().split())
k = (v-b)/(a-b)
print(int(k) if k == int(k) else int(k)+1)
내 코드와 다른 점
해결 방법, 식은 같지만
x >= (V-B)/(A-B)
를 만족하는 x를 구해내는 방법이 다르다.