-코드
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도 포합이 되어있어야 해서 해결을 하였습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 15702번 중간고사 채점 (0) | 2022.01.05 |
---|---|
[백준/파이썬] 5218번 알파벳 거리 (0) | 2022.01.05 |
[백준/파이썬] 2495번 연속구간 (0) | 2022.01.04 |
[백준/파이썬] 1166번 선물 (0) | 2022.01.03 |
[백준/파이썬] 23809번 골뱅이 찍기 - 돌아간 ㅈ (0) | 2022.01.03 |