📝 문제
> 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다.
예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다.
노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다.
A, B, C가 주어졌을 때, 손익분기점을 구하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/1712
🎨 풀이
💡 성공 코드
a, b, c = map(int,input().split())
n = 0
if b >= c:
n = -1
else :
num = c - b
n = int(a / num) + 1
print(n)
> 핵심 : 손익분기점 식 이용.
- 맨 처음의 식을 i로 나누면 두번째 줄의 식처럼 변한다. 여기서, i를 구할 필요가 없게 하기 위해 a / (c - b) 를 해주면 된다.
(2번째 식에서 i 구하려면,, for문 돌려야하는데 그럼 시간 초과 뜬다)
i에 따라 값이 증폭될 수 있는 것은 b와 c인데, 여기서 b가 이미 c보다 크다면 절대 손익분기점을 넘길 수 없다.
(쉽게 말하면, a라는 고정 값이 이미 있는 상황인데, 여기서 b가 c보다 더 크다면 절대 따라잡을 기회 조차 없는 느낌임)
# main
1. a, b, c 값을 입력받는다.
2. 만약 b 가 c 보다 크다면 n에 1을 넣어준다.
3. 아니라면, n에 int(a / ( c - b )) + 1 를 넣어준다.
- 중간에 num이 있는 이유는 그냥 식을 간단하게 좀 만들어보려고 넣은 거다.
- int와 +1을 쓰는 이유는, int를 써야 소수점으로 안나오고, 1을 더해줘야 a / (c - b) 보다 더 큰 값을 구할 수 있기 때문이다.
끝~
⭐ 느낀점
> 헤헤 내 선수 덕분에 기분 좋은 하루다. 이 문제도 못풀 줄 알았는데 그래도 풀어서 다행이다. 진짜 식 도출해내는 거라고는 살짝 생각못했는데 ㅋㅋㅋ앞으로도 요런 수학문제가 많을 것 같아보인다. 재밌겠네~^_^
'알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 10757번 - 큰 수 A+B (파이썬) (0) | 2022.06.24 |
---|---|
[백준] 2292번 - 벌집 (파이썬) (0) | 2022.06.23 |
[백준] 1316번 - 그룹 단어 체커 (파이썬) (0) | 2022.06.21 |
[백준] 2941번 - 크로아티아 알파벳 (파이썬) (0) | 2022.06.20 |
[백준] 5622번 - 다이얼 (파이썬) (0) | 2022.06.19 |