[백준 1712번] 손익분기점 - python

2023. 1. 19. 11:19code/[백준] python

1712번

https://www.acmicpc.net/problem/1712

문제

월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다.

예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다.

노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다.

A, B, C가 주어졌을 때, 손익분기점을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 21억 이하의 자연수이다.

출력

첫 번째 줄에 손익분기점 즉 최초로 이익이 발생하는 판매량을 출력한다. 손익분기점이 존재하지 않으면 -1을 출력한다.

🐰 나의 코드

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

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

문제에서는 고정비용 A, 가변비용 B, 개당 수익 C를 통해서 손익분기점을 넘기는 최초의 판매량을 구하라고 했다.

만약 손익분기점이 존재하지 않는다면 -1를 출력하면 된다.

우선 입력받는 A,B,C를 map(int, input().split())를 이용하여 저장한다.

손익분기점은 고정비용 = 개당 수입(C-B)*판매개수 이다.

따라서 손익 분기점이 존재하지 않는다는 건, B가 C보다 크거나 같아서, 수입이 절대 양수가 되지 않는 경우이므로, if문에 조건을 넣어 분류했다.

나머지 B가 C보다 작다면 손익분기점은 분명 존재하고, else문으로 분류된다.

이 때, //를 활용하여 고정비용 A이 몇 개의 개당 이익으로 이루어져있는지 구한다.

문제에서는 손익분기점을 넘기는 최초의 판매량을 구하는 것이기 때문에, +1을 하여 출력하면 답이 출력된다.