본문 바로가기

알고리즘 문제풀이

백준 1712 손익분기점 Python 사칙연산 브론즈 2

고정 비용 + (가변비용 x 물건 수) <= 물건 판매액 x 물건 수 를 만족해야지 손익분기점을 얻는다
고정비용 a, 가변비용 b, 물건 판매액 c, 물건 수 d 라고 할 때

a + (b * d) <= c * d
a <= (b + c) * d
a // (b+c) <= d

의 흐름을 가지게 된다.

a,b,c = map(int,sys.stdin.readline().split())
if c <= b:
    print(-1)
else:
    print(a // (c-b)+1)

실수한 부분

  1. 런타임 에러 (ZeroDivisionError) 고려하기
    n/0 은 컴퓨터에서 허용하지 않음 => c-b가 0이 아니라는 조건이 필요했음
    a,b,c = map(int,sys.stdin.readline().split())
    result = a // (c-b) + 1
    if result < 0:
     print(-1)
    else:
     print(result)
  2. 75% 에서 틀렸습니다.
    테스트 케이스가 부족했었는 듯
    if b != c:
     result = a // (c-b)
     if result <= 0:
         print(-1)
     else:
         print(result+1)
    else:
     print(-1)