PS/백준
[Python] 1072번 게임
s_omi
2024. 7. 26. 10:03
✏️ 문제
문제 파악
처음에는 int((y / x) * 100) 이렇게 줬는데 계속 틀리길래 찾아보니까 부동소수점 오차 때문에 int((y / x) * 100) 가 아닌 int(y * 100 / x) 이런 식으로 주어야 한다고 한다...
알고리즘
- 수학
- 이분 탐색
코드
x,y = map(int, input().split())
z = int(y * 100 / x)
start, end = 1, x
while start <= end:
mid = (start+end) // 2
if int((y+mid) * 100 / (x+mid)) > z:
end = mid - 1
else:
start = mid + 1
if start > x:
print(-1)
else:
print(start)