본문 바로가기
코딩테스트/백준 알고리즘

백준 알고리즘 | 1712 : 손익분기점 (Python / 파이썬)

by 함께 공부해요 2020. 9. 17.


손익분기점 분류

시간 제한

메모리 제한

제출

정답

맞은 사람

정답 비율

0.35 초

128 MB

69157

15741

13811

23.445%

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을 출력한다.


백준 알고리즘 # 1712번 : 손익분기점

a, b, c = map(int, input().split())     # 고정비용, 가변비용, 판매비용
e = 0

if c <= b:  # 판매비용이 가변비용과 같거나 작아지면 이익이 없어지는 것임
    print(-1)
else:
    print(int(a / (c - b)) + 1)         # int를 안붙이면 11.0으로 출력됨

풀이

처음에 문제를 읽고 어떤걸 물어보는건지 이해가 안되서 지인한테 물어봤다가

국어공부부터 해야겠다고 한소리 들은 문제에요..ㅋㅋㅋㅋㅋㅋㅋㅋ (뜨끔😂)

사실 고정비용, 가변비용, 판매비용에 대한 변수설정과

서로 간의 상호관계만 이해하면 단순 산술문제가 되는데요!!

a, b, c를 각각 고정비용, 가변비용, 판매비용으로 설정하고

고정비용 1,000만원가변비용(나가는 돈) 70만원

그리고 실제 판매하는 170만원이라는 것을 생각하고

손익분기점 e 변수까지 0으로 초기화하면 준비 끝!

먼저 문제의 출력조건에 나온 "손익분기점이 존재하지 않으면 -1을 출력한다."를 if문으로 설정해줘야해요.

그렇지 않으면 제출했을 때 오류가 나더라구요.

때문에 판매비용(c)가 가변비용(b)과 같거나 더 작아질 때, 이때는 이익이 나지 않으니 손익분기점이 생기지 않겠죠?

* 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)

if c <= b

그리고 이 경우가 아닌(else) 판매비용(c)이 가변비용(b)보다 커질 때는

그때는 당연히 손익분기점이 생길테니, 손익분기점을 구하는 방식만 대입하면 문제풀이는 끝나요👏

고정비용(a)를 판매비용(c)에서 가변비용(b)을 빼준

즉, 1000 / (170 - 70) = 10손익분기점이 발생하려는! 찰나의 지점인데

이때 조심해야할 것은 손익분기점이 발생하려는 순간이라는 것은

아직 이익이 발생하지 않고 0으로 맞물린 상태인거에요.

때문에 + 1을 해서 손익분기점을 돌파한 지점을 출력해주고 int(정수변환)까지 해주어서

출력 예시가 원하는 11이라는 값을 출력하면 끄-읏!👍

자세한 코드가 궁금하신 분들은 아래 GitHub 참고해주세요🙏

 

wook2124/Algorithm

Practice algorithm. Contribute to wook2124/Algorithm development by creating an account on GitHub.

github.com

최종 소스코드

댓글