일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- dsf
- data_engineer
- SQL
- delete join
- 데이터 엔지니어
- 프로그래머스
- Dynamic Programming
- 빅데이터를 지탱하는 기술
- 백준 온라인 저지
- docker image
- Pseudo Lab
- 그리디
- Data Engineering
- MySQL
- airflow architecture
- docker container
- 알고리즘
- airflow webserver
- 2023년 목표
- hackerrank
- telegram
- Spark
- docker
- Python
- leetcode
- terraform
- 백준온라인저지
- Airflow
- datacamp
- BOT
Archives
- Today
- Total
Lim Seunghyun Space
[백준 온라인 저지] 손익분기점 본문
문제 출처
1712번: 손익분기점
월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와
www.acmicpc.net
문제 해설
- 노트북 제조 시 A라는 고정 비용이 들고, 노트북 한 대를 생산하는데 B라는 가변 비용이 든다.
- 노트북 가격이 C라고 했을 때, 몇 대의 노트북을 판매해야 이익이 발생하는지 알아내는 문제이다.
# 노트북 판매 수량을 n이라고 하자
C * n > B * n + A # 이것을 계산하면 손익분기점을 계산할 수 있다.
# 위의 수식에서 비교 문자를 등호로 바꾸고 n 만 남기고 정리하면
C * n > B * n + A
> C * n - (B * n) = A
> (C - B) * n = A
> n = A / (C - B)
# 위의 수식은 노트북 판매 금액과 노트북 생산 금액이 일치하는 순간의 노트북 판매 수량이기 때문에
# 손익분기점을 생각하면 위의 수식에서 + 1하면 된다.
n = (A / (C - B)) + 1
나의 풀이
# source: https://www.acmicpc.net/problem/1712
import sys
a, b, c = list(map(int, sys.stdin.readline().split()))
if c == b: # ZeroDivdeError 방지
print(-1)
sys.exit(0) # 0이 아닌 경우, NZEC 에러가 발생.
answer = int(a / (c - b)) + 1
if answer <= 0:
print(-1)
else:
print(answer)
- B == C 가 되는 케이스에서는 분모가 0이 되어 수식이 성립하지 않고, 그 말은 손익분기점을 계산할 수 없다는 뜻이 되기 때문에 -1을 출력해주도록 한다.
- 참고로, sys.exit(n)에서 n이 0이 아닌 다른 숫자를 기입하면 백준 온라인 저지 테스트에서 NZEC 에러를 발생시킨다.
Git 주소
728x90
'Algorithm > 문제' 카테고리의 다른 글
[백준 온라인 저지] 균형잡힌 세상 (0) | 2022.11.19 |
---|---|
[백준 온라인 저지] 벌집 (0) | 2022.11.13 |
[Leetcode] 4. Median of Two Sorted Arrays (0) | 2022.06.10 |
[Leetcode] 3. Longest Substring Without Repeating Characters (0) | 2022.06.09 |
[백준 온라인 저지] 주유소 (0) | 2022.02.26 |