본문 바로가기
공부/알고리즘

[백준]1712_python파이썬 풀이

by happyeuni 2022. 1. 3.

 

 

▼처음 짠 코드(런타임에러)

A, B, C = map(int, input().split())
N = 1
while True:
    if B < C:
        if (A + (B * N)) < (C * N):
            break
        else:  
            N += 1
    else:
        N = -1
        break
print(N)

문제에서 주어진 수익분기점 공식 그대로 쓰고

식을 변형해서 n을 따로 구해줄 생각을 하지 못함..개수를 세어줌...

그러지말고 n을 따로 구하면 될 일

a + b * n < c* n
a<(c-b)*n

a/(c-b)<n    

->a/(c-b) 인데 n은 정수형이어야 하니까 a//(c-b)

 

그리고

개수n은 당연히 0보다크고, a,b,c모두 0보다 크니까 손익분기점이 있으려면 c>b를 성립해야한다는 조건이 생성

->  b>=c 인 경우 손익분기점이 존재X

 

+ 런타임 에러를 막기 위해 if else문 조건을 반대로 써줌

 

▼최종 코드

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

if B>=C:
    print(-1)
else:
    print(A//(C-B)+1)

댓글