[백준알고리즘] 알고리즘 연습 - 2512

krkorklo·2022년 3월 3일
0

백준알고리즘

목록 보기
19/27

2512 - 예산

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

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let numbers = input[1].split(" ").map((n) => Number(n));
let num = Number(input[2]);

function answer(arr, num) {
    arr.sort((a, b) => a - b);
    let left = 0;
    let right = arr[arr.length-1];
    let ans = 0;
    while(left<=right) {
        let mid = Math.floor((left+right)/2);
        let sum = 0;
        arr.forEach((n) => {
            if (n < mid) sum += n;
            else sum += mid;
        })
        if(sum <= num) {
            ans = mid;
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return ans;
}

console.log(answer(numbers, num));

0개의 댓글