yunicornlab

백준 2512번 예산 JavaScript 풀이 [이진 탐색] 본문

Coding Test/Practice

백준 2512번 예산 JavaScript 풀이 [이진 탐색]

yunicornlab 2024. 7. 20. 17:49
반응형

백준 2512번 예산 문제를 자바스크립트로 이진 탐색 알고리즘을 이용해서 풀어보았다. 

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

 

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

let n = Number(input[0]);
let request = input[1].split(' ').map(Number);
let len = request.length;
let m = Number(input[2]);

let start = 1;
let end = Math.max(...request);

let result = 0;
while (start <= end) {
  let mid = parseInt((start + end) / 2);

  let total = 0;
  for (let i=0; i<len; i++) {
    total += Math.min(request[i], mid);
  }

  if (total > m) end = mid - 1;
  else {
    start = mid + 1;
    result = mid;
  }

}

console.log(result)
반응형