1072 : 게임

서희찬·2022년 1월 26일
0

백준

목록 보기
98/105

문제

코드

import math 
x,y = map(int,input().split()) 
# x : 잔체 게임 y : 이긴 게임 
avg = (y*100/x) ; findAvg = math.floor(avg)+1 ;newAvg=0 ; result = 0

if(avg>=99):
    print(-1)
    exit()

start = 1 ; end = x 

while start<=end:
    mid = (start+end)//2
    newAvg = (((y+mid)*100)/(x+mid))
    if newAvg<findAvg:
        start = mid+1 
    else :
        result = mid 
        end = mid - 1 

print(result)

해설

파이썬의 실수처리에 대해 알아갈 수 있는 문제였다

avg1 = (y*100/x)
avg2 = (y/x*100)

을 했을때의 실수처리를 서로 다르방식으로 되어 결과가 다르게 출력된

그렇기에 avg2같은경우는 오차가 발생해 틀리게된다...
문제는 이진탐색으로 총 몇번의 게임을 해야할지 찾아가도록 알고리즘을 짜면된다.

profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)

0개의 댓글