반응형
고정비용 A, 가변비용 B, 판매가격 C 로 변수에 입력받았다.
A, B, C = map(int, input().split())
if A/(C-B) < 0:
print(-1)
else:
count = 1
while True:
if A+(B*count) < C*count:
break
count += 1
print(count)
처음에는 단순하게 while문을 돌려서 손익분기점(count)을 찾아갔는데 시간초과가 났다.
나와 비슷한 사람이 질문한 글을 보고 수학적으로 생각해야된다는 답변이 있어 다시 풀었다.
A, B, C = map(int, input().split())
if C-B < 0:
print(-1)
else:
print((A // (C-B)) + 1)
분명 맞게 했는데 이번엔 런타임 에러(ZeroDivisionError)가 났고 0을 나눴을 때 생기는 오류였다.
A, B, C = map(int, input().split())
if C-B <= 0:
print(-1)
else:
print((A // (C-B)) + 1)
최종적으로 맞은 코드!
문제를 풀기 전에 메모장에 수식을 써봤다.
A + Bx < Cx C가 커질 때의 x를 찾아야 하니까 첫 번째 제출했던 코드의 if문 처럼 A(C-B)이 음수이면 -1을 출력하게 했다.
앞에 곱해진 A는 상관없어지니까 다음 제출할 땐 A를 지웠다.
런타임 에러가 안 나게 하기 위해 if 분기처리 때 0까지 포함시켰다.
반응형
'Algorithm > 백준 단계별로 풀어보기' 카테고리의 다른 글
[백준 알고리즘 / Python] 기본 수학_1 - 2292번 벌집 (0) | 2021.09.20 |
---|---|
[백준 알고리즘/Python] 문자열 (0) | 2021.09.07 |
[백준 알고리즘/Python] 함수 (0) | 2021.09.07 |
[백준 알고리즘/Python]1차원 배열 (0) | 2021.09.03 |
[백준 알고리즘/Python] while문 (0) | 2021.05.26 |