코드
n, m = map(int, input().split())
winning_rate = int((m*100/n))
start = 0
end = 1000000000
result = 0
while start<=end:
if winning_rate == 99 or winning_rate == 100:
result = -1
break
k, l = n, m
mid = (start + end) // 2
siuuu = int(((l+mid) * 100)/(k+mid)
if siuuu != winning_rate:
result = mid
end = mid - 1
else: start = mid + 1
print(result)
처음에 int((m/n) *100) 이렇게 했는데 틀렸습니다가 나왔다. 찾아보니까 부동소수점 오차 때문이라고 한다. 소수 쓸 때 신경 써야겠다.
'백준' 카테고리의 다른 글
[백준] 1654번 랜선 자르기 파이썬 코드 (0) | 2023.09.06 |
---|---|
[백준] 2512번 예산 파이썬 코드 (0) | 2023.09.05 |
[백준] 2805번 나무 자르기 파이썬 코드 (0) | 2023.09.05 |
[백준] 1920번 수 찾기 파이썬 코드 (0) | 2023.09.04 |
[백준] 10816번 숫자 카드 2 파이썬 코드 (0) | 2023.09.04 |