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)

 

'PS > 백준' 카테고리의 다른 글

[Python] 1654번 랜선 자르기  (0) 2024.07.26
[Python] 2512번 예산  (0) 2024.07.26
[Python] 2776번 암기왕  (0) 2024.07.26
[Python] 7795번 먹을 것인가 먹힐 것인가  (0) 2024.07.26
[Python] 2805번 나무 자르기  (0) 2024.07.25