[백준] 2805번 : 나무 자르기 - Java(자바)

강재원·2022년 11월 10일
0

[코딩테스트] Java

목록 보기
174/200



https://www.acmicpc.net/problem/2805

import java.util.*;
public class Main {
    public static void main(String args[]) {
        Scanner s=new Scanner(System.in);
        int n=s.nextInt();
        int m=s.nextInt();
        int arr[]=new int[n];
        for(int i=0;i<n;i++){
            arr[i]=s.nextInt();
        }
        Arrays.sort(arr);
        long max=arr[n-1];
        long min=1;
        long mid=0;
        while(min<=max){
            long num=0;
            mid=(min+max)/2;
            for(int i=0;i<n;i++){
                if(arr[i]>=mid) num+=arr[i]-mid;
            }
            if(num>=m) min=mid+1;
            else max=mid-1;
        }
        System.out.print(max);
    }
}
profile
개념정리 & 문법 정리 & 알고리즘 공부

0개의 댓글