공부하기/백준

[Python] 백준 풀기 1712 - 손익분기점

XEV 2022. 10. 18. 23:32

파이썬 백준 1712번

브론즈2

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

 

1712번: 손익분기점

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

www.acmicpc.net

 

 

 

문제 보기

분류: 수학, 사칙연산

 

 

문제 풀기

문제에 대한 수학적 수식을 작성하고 이것을 풀고자 하는 미지수에 대해 정리하여 프로그래밍 하면 된다.

문제에서 제시한 A 와 B 는 지출이기에 음의 숫자로 분류하고, C 는 수익이기에 양의 숫자로 분류하여 생산량 x 에 대한 수식으로 작성하면,

- A - B * x + C * x

가 된다.

위의 수식에서 손익분기점이 넘어가는 시점은 0 보다 큰 순간이기에

- A - B * x + C * x > 0

으로 놓고 x 에 대해 정리하면

x > A / ( C - B )

가 된다.

이때, x 는 생산량이기 때문에 항상 0 보다 커야하니 음수여서는 안되고, 분모인 ( C - B ) 는 0 을 가질수 없다.

따라서 손익분기점이 존재하지 않는 경우는 위의 조건이 되어서는 안될

if C - B <= 0:

로 분류할 수 있다.

그리고, 계산식 A / ( C - B ) 값은 손익분기점이 이루어지는 실수 값으로 계산되어 지기에 항상 자연수를 갖는 생산량으로 치환하기 위해 math.floor() 함수와 +1 으로 맞추어 결과를 도출하였다.

 

 

코드 보기

import sys
inputdata = sys.stdin.readline

import math

def fnBreakEvenPoint(A, B, C):
    if C - B <= 0:
        return -1
    else:
        BEP = math.floor(A / (C - B) + 1)
        return BEP
    

A, B, C = map(int, inputdata().split())
result = fnBreakEvenPoint(A, B, C)
print(result)