[백준] 2805번 : 나무 자르기 - C

강재원·2022년 11월 10일
0

[코딩테스트] C/C++

목록 보기
174/200



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

#include<stdio.h>

int main() {
    int n,m;
    scanf("%d %d",&n,&m);
    int arr[n];
    for(int i=0;i<n;i++){
        scanf("%d",&arr[i]);
    }
    long max=1000000000;
    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;
    }
    printf("%d",max);
}
profile
개념정리 & 문법 정리 & 알고리즘 공부

0개의 댓글