문제부터 벌써 복잡해 보이지만 천천히 이해하면 됩니다.
우선 노트북을 판매하는 회사가 있는데, 이 회사의 손익분기점을 구하려고 합니다.
쉽게 말하면 손익분기점이란 회사의 이익이 + 되는 지점이라고 보면 되겠습니다.
A회사가 노트북을 만드는데 1200만원이 들어갔고, 노트북을 팔아서 1000만원을 벌었으면
A회사는 아직 손익분기점이 아닙니다.
만약 노트북이 조금 더 팔려서 1500만원이 됐다면 총 수입이 총 비용 1200만원보다 높아진 것이니 손익분기점을 돌파한 것 으로 볼 수 있습니다!
예제 입력 1번을 보시면
고정 비용이 1000, 가변비용이 70, 노트북 판매가 170 입니다. 편하게 원으로 계산해봅시다.
만약 노트북이 3대 팔렸다고하면
고정 비용 1000 + 70(가변비용) *3(노트북대수 ) -> 1000 + 210 = 1210 (총 지출)
170(노트북 판매가) * 3(노트북대수) -> 170*3 = 510 (총 수입)
1210 > 510 아직 총 지출이 총 수입보다 크므로 손익 분기점 구간이 아닙니다.
이 문제를 풀때에는 수학적 사고가 요구 되는데, 단순히 노트북을 1대부터 ~ 손익분기점 까지의 노트북 판매대수 로 반복문을 돌리게 되면 오류가 생기게 됩니다.
그 이유는 시간 제한이 0.35초 이므로 반복문을 돌려서 푸는 것은 출제자가 의도한 바가 아닐것 입니다.
그래서 생각한 것은
우선 가변비용 > 노트북 판매가 라면 절대로 손익분기점에 도달할 수 없다는 것을 알았습니다.
아무리 많은 노트북을 팔아도 생산비용이 더 많이 들어가기 때문에 손익분기점에 도달할 수 없기 떄문입니다.
또한 우리는 21억이란 큰 숫자를 넣어서 반복문을 사용하지 않고 해결 해야되기 때문에 반복문 말고 다른 방법을
생각 해내야 합니다.
제가 생각한 것은
고정비용을 (노트북 판매가 - 가변비용)로 나누고 1을 더해주면 해당 식이 성립하는 것을 알아냈습니다.
위 값을 참고하여
1000 / /(170-70) + 1
ㄴ1000 //(100) +1
ㄴ 10+1 -> 11
즉 노트북 판매수 가 11대일때 이 값들을 넣었을때 손익분기점을 도달한다는 것을 알았습니다.
실제로 맞는지 검토를 해보겠습니다.
판매수가 10대일 때
1000 + 70*10 -> 1700
170 * 10 -> 1700
판매수가 11대일 때
1000 + 70*11 -> 1770
170 * 11 -> 1870
실제로 11대일 때 손익분기점을 도달하는 것을 알아냈습니다.
코드는 이렇게 됩니다.
정말 어려운 수학 능력이 요구 되는 것 같지만, 생각만 잘 한다고 하면 실제 코드는 3~5줄 채 되지 않습니다.
수학적으로도 코딩적으로도 도움이 많이 됐던 것 같습니다.
백준2108번 통계학 파이썬 풀이 (0) | 2022.01.04 |
---|---|
프로그래밍_파이썬_백준_2750번_정렬_오름차순 (0) | 2021.11.27 |
프로그래밍_파이썬_백준_10870번_피보나치수열 (1) | 2021.11.26 |
프로그래밍_파이썬_백준_10872번_팩토리얼_재귀함수 (0) | 2021.11.26 |