Deep_Lee
article thumbnail


๋ฐฐ์—ด ์š”์†Œ๋ฅผ ๋ณ€์ˆ˜ ํ•˜๋‚˜๋ฅผ ์ด์šฉํ•ด์„œ ๊ณ„์† ๋ฐ˜๋ณต๋ฌธ ๋Œ๋ฆฌ๋ฉด ์—ญ์‹œ ์‹œ๊ฐ„์ดˆ๊ณผ๋‹ค .

 

์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด๋ถ„๊ฒ€์ƒ‰์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

sum < m ์ด๋ฉด , ๋ชฉํ‘œ๋Ÿ‰์— ๋ถ€์กฑํ•˜๋‹ˆ๊นŒ ๋” ๋งŽ์ด ์ž˜๋ผ์•ผํ•จ -> rt ๊ฐ์†Œ

sum > m ์ด๋ฉด , ๋ชฉํ‘œ๋Ÿ‰๋ณด๋‹ค ๋งŽ์€๊ฑฐ๋‹ˆ ๋” ์ ๊ฒŒ ์ž˜๋ผ์•ผํ•จ -> lt ์ฆ๊ฐ€

 

import java.util.*;
class Main {
    public static void main(String args[]) throws Exception {
        Scanner kb = new Scanner(System.in);
        int n=kb.nextInt();
        int m=kb.nextInt();
        int[] arr=new int[n];

        int lt=0;
        int rt=0;

        // ์ตœ์ €๊ฐ’ lt : ์ตœ๋Œ€๊ฐ’ rt
        for(int i=0; i<n; i++){
            arr[i]=kb.nextInt();
            rt=Math.max(rt,arr[i]);
        }

        while(lt<rt){
            int mid=(lt+rt)/2;
            long sum=0;
            for(int x:arr){
                if(x-mid>0){
                    sum+=x-mid;
                }
            }

            if(sum<m){
                rt=mid;
            }
            else{
                lt=mid+1;
            }
        }
        System.out.println(lt-1);
    }
}