처음엔 그냥 입력값에 대해 반복문을 돌렸다
그렇게 하면 값이 낮은 예제 1, 2 번에 대해서는 잘 나오지만
값이 큰 3번 입력에 대한 출력을 뽑는데는 시간이 엄청 오래걸리게 된다
#처음 풀이
A, B, V = map(int, input().split())
count = 1
while V >= 0:
V -= A
if V <= 0:
break
V += B
count += 1
print(count)
수학적으로 접근해서 다시 풀었다
A, B, V = map(int, input().split())
count = (V - A) // (A - B)
if (V - A) % (A - B) != 0:
count += 1
print(count + 1)
첫날에는 A 만큼 올라가기때문에 V - A
두번째 날 부턴 전날 미끄러진 만큼 올라가기 때문에 A - B
만약 0으로 떨어지지 않는다면 다음날 한번 더 올라가야 하기 때문에 +1
'백준 > 일반 수학 1' 카테고리의 다른 글
백준 - 2292 (python) (0) | 2024.02.16 |
---|---|
백준 - 2903 (python) (0) | 2024.02.15 |
백준 - 2720 (python) (0) | 2024.02.14 |
백준 - 11005 (python) (0) | 2024.02.14 |
백준 - 2745 (python) (0) | 2024.02.14 |