월드전자는, 매년 고정비용(임대료, 재산세, 보험료, 급여 등) A만원이 들며,
한 대의 노트북을 생산하는 데 B만원의 가변비용이 든다.
예를 들어 A=1,000, B=70 이라면, 노트북 한대 생산하는데, 1,070만원, 열대 생산에 1,700만원이 든다.
노트북 가격이 C만원으로 책정되었다면, 노트북을 생산하다 보면 총수입이 총비용을 넘는 지점(손익분기점)이 나타난다.
A, B, C 가 주어졌을 때, 손익분기점을 구하는 프로그램을 작성하시오.
입력:
첫줄에 A B C 가 공백구분으로 입력
출력:
손익분기점 즉 최초 이익이 발생하는 판래량을 출력. 손익분기점이 없으면 -1 출력.
문제풀이+해설
프로그램을 작성하다보면 무작정 조건이 만족할 때 까지, 루프를 돌려서 계산하는 경우가 많다.
알고리즘에서 제일 안좋은 방식중 하나다.
문제를 해결하기위해, 규칙이나 간단한 공식으로 계산되는지 고려해 볼 필요가 있다.
이 문제의 의도는 간단한 공식을 유도하는 게 핵심인 듯 싶다.
아래와 같이 공식을 유도할 수 있다.
--
x(노트북대수) 라 하자.
A(고정비) + B(1대생산비) * x = 총비용 = C(1대가격) * x
A + B * x = C * x
A + B * x - C * x = 0
(B - C) * x = -A
x = -A / (B - C)
---
간단한 공식으로 구현가능하다.
x(노트북대수)가 손익이 되기 시점의 대수이므로, 손익보다 클 경우의 노트북 대수를 구하므로, +1 대를 해 주면 된다.
-값이 되는 경우( C(판매가)가 B(생산가) 이하 )인 경우는 수익이 발생하지 않는 경우이니 -1 처리하면 된다.