https://www.acmicpc.net/problem/1712
문제 풀이
- 방정식을 나타낸다.
- A + Bx < Cx
A/(B-C) <x
- A + Bx < Cx
- 최소 노트북 개수는 A/(B-C)의 +1한 값의 내림값이다.
- 만약 A/(B-C)이 11.2이면 손익분기점을 넘는 노트북의 개수는 12개(11.2+1 = 12.1 => 12.1의 내림 12)이다.
- 만약 B-C가 음수이면 손익 분기점을 내지 못해 -1를 출력한다.
- 만약 B-C가 0이면 0으로 나눌수 없기 때문에 -1를 출력한다.
solution - 실패
- B-C가 0일때를 고려하지 못했다.
- ZeroDivisionError 발생했다.
import sys
import math
A,B,C = map(int, sys.stdin.readline().strip().split())
answer = math.floor(A/(C-B)+1)
if answer > 0:
print(answer)
else:
print(-1)
solution - 성공
import sys
import math
A,B,C = map(int, sys.stdin.readline().strip().split())
if B>= C:
print(-1)
else:
print(math.floor(A/(C-B)+1))
'algorithm > 백준' 카테고리의 다른 글
[PYTHON] 1157 단어 공부 - 문자열 변경 메서드 정리(대문자, 소문자, 대문자 소문자 반대로 반환, 첫 글자 대문자) (0) | 2023.01.26 |
---|---|
[PYTHON] 5597 과제 안 내신 분...? (0) | 2023.01.26 |
[PYTHON] 10822 더하기 (0) | 2023.01.19 |
[PYTHON] 5622 다이얼 - dictionary로 푸는법/ list로 푸는법 (0) | 2023.01.19 |
[PYTHON] 2577 숫자의 개수 - 한줄씩출력(for, print(str,sep='\n')) (0) | 2023.01.19 |
댓글