▼처음 짠 코드(런타임에러)
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)
'공부 > 알고리즘' 카테고리의 다른 글
[SWEA]1228_암호문1 JAVA 풀이 (0) | 2022.02.08 |
---|---|
[SWEA]1225_암호생성기 JAVA 풀이 (0) | 2022.02.08 |
[백준]2941_python파이썬 풀이 (0) | 2021.12.30 |
[백준]2908_python파이썬 풀이 (0) | 2021.12.30 |
[백준]1152_python파이썬 풀이 (0) | 2021.12.30 |
댓글