본문 바로가기

기타/algorithm

손익분기점 1712번 백준 풀이

728x90

백준 문제에서 1712번에 해당하는 손익분기점 문제 풀이입니다.

문제를 읽어보셨다고 가정하고 설명하도록 하겠습니다.

출력에는 크게 두 가지가 있습니다.

손익분기점을 넘는 판매량,

손익분기점이 존재하지 않을 때의 -1

그렇다면 두가지를 구분하는 조건을 찾아야겠지요.

생각해봅시다.

고정비용은 판매량이 증가한다고 그 자체로 변화가 생기지 않습니다.

반면 가변비용과 가격은 판매량이 증가하면 둘 다 증가합니다.

만약 가변비용이 가격보다 크다면 판매량 증가는 적자를 확대합니다.

가변비용이 100이고 가격이 10이면 한 개씩 판매량이 증가할 때마다 이익은 -90입니다.

때문에 가변비용이 가격보다 작아야 손익분기점이 존재할 수 있습니다.

같을 때는? 이익이 판매량이 1 증가할 때마다 0이 증가므로 고정비용이 줄어들지 않습니다.

즉, 손익분기점이 존재하기 위해서는 반드시 가격이 가변비용보다 커야 합니다.

손익분기점이 존재한다고 했을 때 어떻게 손익분기점을 구할까?

판매량 1 증가할 때마다 증가하는 이익은 가격-가변비용입니다.

이것들이 누적되어 고정비용이 넘었을 때가 손익분기점입니다.

즉 고정비용을 (가격-가변비용)으로 나눈 몫에 1을 더한 값이 손익분기점입니다.

예를 들어 가격이 100이고 가변비용이 90이라고 할 때 판매량 1 증가당 이익 증가분은 10입니다.

고정비가 100이라면 판매량이 11일 때 이익으로 전환됩니다. 

코드로 짜면 아래와 같습니다.

 

def Break_even_point(A,B,C):
    if B>=C:
        return(-1)
    else:
        return(A//(C-B)+1)

A,B,C=map(int, input().split())

print(Break_even_point(A,B,C))

 

728x90