본문 바로가기
BOJ

[BinarySearch] 게임 1072

by YGSEO 2020. 12. 8.
728x90

suri78.tistory.com/214

 

[백준알고리즘] 1072번: 게임 -Python

[백준알고리즘] 1072번: 게임 -Python https://www.acmicpc.net/problem/1072 1072번: 게임 각 줄에 X와 Y가 주어진다. X는 1,000,000,000보다 작거나 같은 자연수이고, Y는 0보다 크거나 같고, X보다 작거나..

suri78.tistory.com

범위가 너무 크다는 생각에

이진탐색의 기준을 어떻게 잡아야할지 생각이 안나서

결국 구글링으로 정답을 찾아보게 되었다.

while True: 
    try: 
        x, y = map(int, input().split()) 
    except EOFError: 
        break 
        
    now_z = int(y*100/x) 
    s, e = 1, 1000000000 
    
    while s < e: 
        m = (s+e)//2 
        mv = int((y+m)*100/(x+m)) 
        
        if mv <= now_z: 
            s = m+1 
        else: 
            e = m 
    if int((y+e)/(x+e)*100) > now_z:
        print(e)
    else:
        print(-1)

결국 찾고자 하는 값이 now_z보다 클 때의 값을 찾는 것이기 때문에

while의 조건을 s<=e가 아니라 s<e로 설정하고

else에서 e 지점을 줄이지 않고 그대로 가져간다.

728x90

'BOJ' 카테고리의 다른 글

[BinarySearch] 두 배열의 합  (0) 2020.12.11
[BinarySearch] 개똥벌레  (0) 2020.12.08
[BinarySearch w/LIS] 반도체설계  (0) 2020.12.06
[BinarySearch] K번째 수 1300번  (0) 2020.12.03
[BinarySearch] 가장 긴 증가하는 부분 수열 2  (0) 2020.12.03

댓글