본문 바로가기
코테/백준

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

by gayoungeeda 2023. 7. 20.
728x90

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

 

문제 설명


문제 풀이

#include<stdio.h>
int tree[1000000];
int main()
{
    int i, n, m, low, high, mid, answer = 0;
    long long cnt;
    scanf("%d%d", &n, &m);

    for(i = 0; i < n; i++) {
        scanf("%d", &tree[i]);
    }

    low = 1; high = 1000000000;

    while(low <= high) {
        mid = (low+high) / 2;
        cnt = 0;
        for(i = 0; i < n; i++) {
            if(tree[i] > mid)
                cnt += (tree[i] - mid);
        }

        if(cnt < m) high = mid - 1;
        else if(cnt >= m) {
            answer = mid;
            low = mid + 1;
        }

    }

    printf("%d", answer);

    return 0;
}

'코테 > 백준' 카테고리의 다른 글

[백준] 10799 쇠막대기 - C++  (0) 2023.07.20
[백준] 10815 숫자 카드 - C++  (0) 2023.07.20
[백준] 1764 듣보잡 - C++  (0) 2023.07.19
[백준] 10798 세로읽기 - C++  (0) 2023.07.19
[백준] 17608 막대기 - C++  (0) 2023.07.18