프로그래밍 언어/파이썬

백준 > 1712 손익분기점

B612 2024. 2. 10. 18:54
#시간 초과 코드
a, b, c = map(int, input().split())

i = a // c

while(True):
    i += 1
    if b >= c:
        print(-1)
        break
    if (a + b * i < c * i):
        print(i)
        break

 

기존에는 while문을 이용해 손익분기점을 찾아내는 방식으로 접근했다.

하지만 계속해서 시간 초과가 났고, 문제를 푸는 다른 방법이 있을 것이라 생각했다.

 

위의 코드가 힌트가 되는데, 손익분기점을 구하는 수식은 a + b * i < c * i 가 된다.

i를 한 변으로 몰아넣고 풀면 금방 구할 수 있었다.

 

#정답 코드
a, b, c = map(int, input().split())

if b >= c:
    print(-1)
else:
    print(a // (c-b) + 1)

 

그리고 내 2년 간의 도전..^^