https://ko.wikipedia.org/wiki/%EC%86%90%EC%9D%B5%EB%B6%84%EA%B8%B0%EC%A0%90
손익분기점이란, 총 비용과 소득이 동등한 지점을 의미한다.
지불되어야 하는 모든 비용이 지불된 상태이고, 특별한 이익이나 손실이 없는 경우를 말한다.
문제
월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 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 복사
1000 70 170
예제 출력 1 복사
11
예제 입력 2 복사
3 2 1
예제 출력 2 복사
-1
정답
#a=고정비용 b=가변비용 c=노트북가격
a, b, c = map(int, input().split())
if b>=c:
print(-1)
else:
print(a//(c-b)+1)
입력받는 값이 21억 이하의 자연수이므로, 일반적인 반복문을 사용하면 시간초과가 발생할 수 있다.
따라서, 고정비용 // (판매금액-가변비용) 한 값이 본전 또는 바로 아래의 수입이고, 그 값에서부터 하나씩 더 팔때마다 비로소 이익이 발생하므로 정답은
(고정비용 // (판매금액-가변비용)) + 1 이다.
'코딩테스트 > 알고리즘 문제풀이' 카테고리의 다른 글
[파이썬] 10250 : ACM호텔 (0) | 2021.02.15 |
---|---|
[파이썬] 2869 : 달팽이는 올라가고 싶다. (0) | 2021.02.15 |
1099 : [기초-2차원배열] 성실한 개미 (0) | 2021.02.14 |
1098 : [기초-2차원배열] 설탕과자 뽑기 (0) | 2021.02.12 |
1097 : [기초-2차원배열] 바둑알 십자 뒤집기(설명) (0) | 2021.02.11 |
댓글