본문 바로가기
PS/BOJ

[PS] 백준 1712번 - 손익분기점 | Python

by spareone 2023. 1. 13.

백준 1712번 문제 Write-Up입니다.

https://www.acmicpc.net/problem/1712

 

1712번: 손익분기점

월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와

www.acmicpc.net


손익분기점을 구하면 되는데... 총지출보다 총수입이 많아지는 때를 구하면 됩니다.

판매량을 x라고 했을 때, 총지출은 A + (B * x)이고, 총수입은 C * x입니다.

이 때 최초로 A + (B * x) < C * x 식을 만족하는 x의 값을 찾으면 됩니다.

 

반복문으로 직접 찾는 방법도 있지만, 입력 범위가 21억까지이기 때문에 시간 초과가 나옵니다.

따라서 이 문제는 수학적으로 접근해야 합니다.

 

y = A + Bx, y = Cx 이렇게 일차함수가 있다고 생각하면 됩니다.

두 식의 교점에서 1을 더하면 정답이 됩니다.

 

A + Bx = Cx 연립방정식을 풀면, Cx - Bx = A가 됩니다.

정리하면 x = A/(C - B)가 되는데, 이 식을 이용하면 간단하게 답을 구할 수 있습니다.

다만, 분모는 음수가 될 수 없으므로 B와 C가 같거나 B가 더 크면 손익분기점을 구할 수 없기 때문에 -1을 출력해야 합니다.

 

def solution(a, b, c):
    if (b >= c):
        return -1
    return a//(c - b) + 1

if __name__ == "__main__":
    a, b, c = map(int, input().split())
    print(solution(a, b, c))

댓글