백준/일반 수학 1

백준 - 2869 (python)

SooHw 2024. 2. 20. 14:09

 

 

처음엔 그냥 입력값에 대해 반복문을 돌렸다

그렇게 하면 값이 낮은 예제 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