Dev.baelanche

[백준 1072] 게임 본문

Data Structure & Algorithm/PS - JAVA

[백준 1072] 게임

baelanche 2019. 7. 16. 21:33
반응형

 

기존 점화식은

Y / X * 100

이지만 y에 비해 x가 무진장 크다면 0.0000xxxx.... 가 되어 100을 곱해도 0이 되게 된다.

 

따라서

Y * 100 / X

로 점화식을 짜주고 y * 100이 int의 범위를 벗어날 수 있으므로 long타입으로 해준다.

 

 

X와 Y가 같지 않은 이상 절대로 확률이 100%가 될 수 없으므로

Y * 100 / X 가 99이면 -1을 출력한다.

 

그 외의 경우에는 이분탐색으로 기존의 승률보다 높으면서 판수가 가장 적을때를 찾아낸다.

 

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        long x = sc.nextInt();
        long y = sc.nextInt();
        int z = (int)(y * 100 / x);
        
        if(z >= 99) System.out.println(-1);
        else {
            int left = 0;
            int right = Integer.MAX_VALUE;
            while(left <= right) {
                int mid = (left + right)/2;
                if((int)((y+mid) *100 / (x+mid)) > z) right = mid - 1;
                else left = mid + 1;
            }
            System.out.println(left);
        }
    }
}
반응형
Comments