우당탕탕 파이썬 with 하루하나 알고리즘

백준 1712 파이썬 - 손익분기점이 발생하는 지점 찾기 (feat.수학적 사고)

hyxndy 2022. 4. 13. 13:34

백준 1712번 - 손익분기점 with Python

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

 

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

 

1712번: 손익분기점

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

www.acmicpc.net


이제 백준 문자열 단계를 졸업하고 기본수학 1 단계로 접어들었다..!!

시험기간에도 이렇게 꾸준히 업로드 하는 나.. 제법 뿌듯하다. 이렇게 꾸준히 무언가를 한 적이 있었을까 싶기도 한다.

그만큼 코딩과 관련된 작업이 내 적성에 맞고 앞으로 내가 나아갈 방향이라는 것을 더 명확하게 해주는 것 같다.

앞으로도 꾸준히 놓지 않고 열심히 해야겠당! ☺️


먼저 문제를 바탕으로 손익분기점을 구하는 식을 작성해보자. 

A - 고정비용 / B - 가변비용 / C - 이익 이라면,

A + (B × (생산 대수)) = C × (생산대수) 인 지점이 총 비용과 수익이 같아지는 때이다.

위 식을 만족하는 생산대수에  +1을 해주면 바로 그 지점이 손익분기점이 발생하는 부분이다.

 

생산대수를 x라고 해보자.

그러면 식은 

A + Bx = Cx가 되고, x에 관한 식으로 정리를 해보면,

x = A/(C-B)가 된다.

그러면 손익분기점이 발생하는 부분은 x + 1 = A/(C-B) + 1이다.

 

그러면 손익 분기점이 발생하지 않을 때는 언제일까?

A + Bx = Cx 일때 항상 (A + Bx) 부분이 더 클 때 인데, 이는

B > C보다 크다면 x>0일 때 항상 Bx> Cx일 것이다.

 

위의 상황을 종합하여 코드를 작성해보면 다음과 같다.

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

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

여기서 A/(C-B)를 해주면 정수형이 아니라 실수형으로 변환되기 때문에 꼭 다시 정수형으로 바꾸는 작업이 필요하다.