티스토리 뷰

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

 

2512번: 예산

첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상

www.acmicpc.net

const fs = require('fs');
const input = fs.readFileSync("./dev/stdin").toString().trim().split("\n").map(v=>v.split(' ').map(x=>+x));

const num = input[0][0];
const budget = input[1].sort((a,b)=>{return a-b});
const total = input[2][0];
console.log(binarySearch(budget,total))



function binarySearch(arr,total){
  let tempAnswer;
  let left = 0;
  let right = arr[arr.length-1];
  let mid;
  while(left<=right){
    mid = Math.floor((left+right)/2);
    let sum = 0;
    arr.forEach((v,i)=>{
      if(v<mid){
        sum+=v;
      }else{
        sum+=mid
      }
    })

    if(sum<=total){
      left = mid+1;
      tempAnswer = mid;
    }else{
      right = mid-1
    }
  }
  return tempAnswer; 
}
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함