Lim Seunghyun Space

[백준 온라인 저지] 손익분기점 본문

Algorithm/문제

[백준 온라인 저지] 손익분기점

Lim Seung Hyun 2022. 11. 13. 21:54

문제 출처

 

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