파이썬(Python)/백준(Baekjoon) 문제 풀이

[백준, python 파이썬] 1712번 : 손익분기점(기본 수학1)

sunning 2022. 3. 27. 16:04
728x90

백준 1712번 문제 풀기

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

 

1712번: 손익분기점

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

www.acmicpc.net

 


문제 설명

문제

월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 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을 출력한다.

 

예제 입력 1
예제 출력 1
1000 70 170
11
예제 입력 2
예제 출력 2
3 2 1
-1
예제 입력 3
예제 출력 3
2100000000 9 10
2100000001

 


알고리즘 및 설명 

A만원의 고정비용, B만원의 가변비용, C만원이 상품의 가격이라고 하자. n개의 물건이 팔린다고 가정하면 비용은 (A + B* n)만원이 되고 수입은 (C*n)만원이 된다. 손익분기점이란, 최초로 수입이 비용보다 많아지는 지점이므로 A+B*n < C*n이 되는 최초의 n을 구하면 된다.

위의 식은 A < n*(C-B)로 나타낼 수 있으며 A은 자연수이므로  C < = B인 상황에서는 손익분기점이 발생하지 않는다.

따라서 C < =B인 상황에는 -1을 출력하면 되고 C > B인 상황에는 A/(C-B) < n인 가장 작은 n을 출력하면 된다.

파이썬 math 라이브러리의 floor를 활용하였다. floor함수는 숫자를 내림한 값을 반환하는데, 그냥 (A/(C-B))를 내림하면 (A/(C-B))보다 작은 값이 n이 되므로 손익분기점이 아니다. 따라서 1을 더해준 값에 floor함수를 씌워 계산하면 된다.

 

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

if C > B:
    n = math.floor(A/(C-B) + 1)
else:
    n = -1
    
print(n)

 

 

728x90