- 발행일
99클럽 코테 스터디 6일차 TIL + 오늘의 학습 키워드: 이분탐색 / 완전탐색
99클럽 코테 스터디 6일차 TIL + 오늘의 학습 키워드: 이분탐색 / 완전탐색
이 글은 네이버 블로그에 2025년 3월 7일에 올렸던 것을 그대로 옮겨온 것입니다.
오늘의 회고
어떤 문제가 있었고, 나는 어떤 시도를 했는지
어떻게 해결했는지
무엇을 새롭게 알았는지
내일 학습할 것은 무엇인지
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const [N, M] = input.shift().split(" ").map(Number);
const arr = input[0]
.split(" ")
.map(Number)
.sort((a, b) => a - b);
let start = 1;
let end = arr[arr.length - 1];
let answer = 0;
while (start <= end) {
const mid = Math.floor((start + end) / 2);
let sum = 0;
for (let x of arr) {
if (x > mid) {
sum += x - mid;
}
}
// 만들어진 나무의 길이 합이 목표보다 짧다면,
// 즉 나무 길이를 더 짧게 해주어서 늘려주어야한다
if (M > sum) {
end = mid - 1;
}
// 만들어진 나무 길이 합이 목표값보다 많다면
// 나무 길이를 더 늘려주어서 sum이 작아지도록 해야한다.
else {
answer = mid;
start = mid + 1;
}
}
console.log(answer);
필수 해시태그: #99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL
