파이썬 백준 1712번
브론즈2
https://www.acmicpc.net/problem/1712
문제 보기
분류: 수학, 사칙연산
문제 풀기
문제에 대한 수학적 수식을 작성하고 이것을 풀고자 하는 미지수에 대해 정리하여 프로그래밍 하면 된다.
문제에서 제시한 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)
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 3009 - 네 번째 점 (0) | 2022.10.20 |
---|---|
[Python] 백준 풀기 5086 - 배수와 약수 (0) | 2022.10.19 |
[Python] 백준 풀기 1912 - 연속합 (0) | 2022.10.15 |
[Python] 백준 풀기 10816 - 숫자 카드 2 (2) | 2022.10.13 |
[Python] 백준 풀기 1780 - 종이의 개수 (0) | 2022.10.12 |