jyamethyst21 님의 블로그

백준 1712번- '손익분기점' (PYTHON 풀이) 본문

CODING 💻

백준 1712번- '손익분기점' (PYTHON 풀이)

jyamethyst21 2025. 11. 21. 00:24

문제:

 

고정비용과 가변비용이 있을 때 몇개를 팔아야 손실을 다 메꿀 수 있는지, 즉 손익분기점에 해당하는 수량을 찾으면 되는 문제이다.

여기서 손익분기점 코드를 작성할 때 유의해야 할 점이 C가 B보다 반드시 크다는 것이다. 당연하다. B는 비용이고 C는 판매가인데 판매가가 비용보다 더 높아야 손실을 메꿀 수 있을 것이다.

그래서 코드를 작성하기 전에 우선 손익분기점이 발생할 수 있는 식을 계산하였다. (해당 식은 문제를 보면 이해할 수 있을 것이다.)

'A + B * i < C * i'  (고정비 + 가변비 * 수량 < 판매가 * 수량)

식을 작성하면 이와 같이 되는데, 여기서 구해야 하는 것이 i이니까 i를 한쪽으로 몰아서 작성하면 i = A // (C - B) + 1 와 같이 정리가 된다. 이를 참고해서 코드를 작성하면 된다.

 

풀이:

A, B, C = map(int,input().split())

if C <= B:
    print(-1)
else:
    print(A // (C - B) + 1)

입력을 받고, 앞서서 손익분기점이 되기 위해선 C가 B보다 커야한다고 했다. 그러니 이를 지키지 않을 시 -1을 출력하도록 하고, 이 규칙을 지켰다면 앞서서 작성한 식대로 출력해주면 된다.

이번 문제를 풀 때 처음엔 반복문을 써서 풀어야하나 싶어서 작성하려다가 제한 수가 따로 없어서 이와 같이 풀 경우 너무 메모리를 낭비할 수도 있겠다는 생각이 들었다. 그래서 식을 정리하는 쪽으로 생각을 바꾸었는데 그렇게 작성하니 아주 짧고 쉽게 풀 수 있었다.