본문 바로가기
Study

백준 1072: 게임(Python)

by 고체물리학 2022. 2. 2.

X,Y = map(int,input().split())
Z = (Y * 100)//X
Result = 0
left = 0
right = X

if Z>=99:
    print(-1)
else:
    while left <= right:
        middle = (left+right)//2
        if (Y+middle)*100 // (X+middle)<=Z:
            left = middle +1
        else:
            Result = middle
            right = middle -1

    print(Result)

 

이전 기록을 삭제할 수 없기 때문에 Z(승률)가 99 이상이면 리턴 값 -1인 조건을 출력

 

나머지는 이진탐색으로 범위를 좁힌다

left는 0 right는 X로 대입해서 left와 right의 중간값을 Z와 비교

승률이 넘어서면 midle-1로  탐색하는 범위를 절반씩 줄인다

 

 

이때 승률 소수점 계산을 math.floor로 했었는데 에러가 계속 떠서 // 연산자를 사용함

 

 

반응형

'Study' 카테고리의 다른 글

백준 2798: 블랙잭(Python)  (0) 2022.02.10
Brute Force 브루트 포스 알고리즘  (0) 2022.02.09
백준1009: 분산처리(Python)  (0) 2022.01.10
분할 정복[Divide and Conquer] 정리  (0) 2022.01.04
백준9095: 1, 2, 3 더하기(Python)  (0) 2021.12.30

댓글