본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 1072번 게임

by 현장 2022. 1. 4.

-코드

def binary(x, y):
    start, end = 0, x
    first = y * 100 // x
    while start <= end:
        mid = (start + end) // 2
        second = (y + mid) * 100 // (x + mid)
        if first >= second:
            start = mid + 1
        else:
            answer = mid
            end = mid - 1
    return answer


X, Y = map(int, input().split())
if Y * 100 // X >= 99:
    print(-1)
else:
    print(binary(X, Y))

처음에는 first가 second보다 작으면 바로 값을 출력하게 했지만 그렇면 큰 값이 출력이 될 수 있다는 것을 다시 알고 고쳤습니다. 그 후에는 범위 문제로 99보다 클경우만 했더니 에러가 생겨서 찾아보니 99도 포합이 되어있어야 해서 해결을 하였습니다.