[1712번] 손익분기점
손익분기점을 구하는 문제입니다.
입력으로 A, B, C가 주어지는 데요.
A는 고정비용 B는 가변비용, C는 판매로 얻는 수익(수입)입니다.
쉬운 듯하면서도 제대로 이해하지 못하면 헤매는 문제입니다.
💻 2가지로 분류해서 처리해야 합니다.
1) 손익 분기점을 달성하지 못하는 상태
: C(이익)이 B(가변비용) 보다 크지 않거나 같을 때
2) 손익 분기점을 달성할 수 있는 상태
C-B>0보다 클 때, C-B를 A(고정비용)으로 나누는 x값의+1 시점이 손익분기점이 됩니다.
A, B, C = map(int, input().split())
# 손익분기점에 도달하지 못하는 경우 처리
if B >= C :
print(-1)
# 손익분기점 구하는 식
else:
print(A//(C-B)+1)
🎈코드는 쉬운데 주의할 점이 2가지 있습니다.
- while로도 처리할 수 있지만, while을 쓰면 시간 초과로 인해 코드가 통과되지 않는다는 점
- if에서 B = C가 같을 때 처리를 해주지 않으면, C-B가 0인 경우도 존재하므로
else에서 0으로 나누게 되어 런타임에러가 발생하게 된다는 점
아래는 런타임에러가 발생하는 경우입니다.
- 배열에 할당된 크기를 넘어서 접근했을 때
- 전역 배열의 크기가 메모리 제한을 초과할 때
- 지역 배열의 크기가 스택 크기 제한을 넘어갈 때
- 0으로 나눌 때
- 라이브러리에서 예외를 발생시켰을 때
- 재귀 호출이 너무 깊어질 때
- 이미 해제된 메모리를 또 참조할 때
'알고리즘 문제 풀기 > 백준(Baekjoon)' 카테고리의 다른 글
[백준 알고리즘] 8958. OX퀴즈 - 파이썬 (0) | 2021.02.10 |
---|---|
[백준 알고리즘] 10828번 스택 (0) | 2021.02.06 |
[백준 알고리즘] 11653번 소인수분해 _ 파이썬 python (1) | 2021.02.04 |
[백준 알고리즘] 11399번 ATM_ python 파이썬 (0) | 2021.02.04 |
[백준 알고리즘] 4673번 셀프 넘버 (0) | 2021.02.01 |