[boj] 2343. その他のレッスン(node.js)
10515 ワード
問題の概要
[boj] 2343. その他のレッスン(node.js)
に答える
説明する
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
function solution() {
const [N, M] = input().split(" ").map(Number);
const arr = input().split(" ").map(Number);
let max = Math.max(...arr);
let L = max;
let R = 1000000000;
let result = R;
while (L <= R) {
let mid = Math.floor((L + R) / 2);
if (groupCounter(mid) > M) {
L = mid + 1;
} else {
result = mid;
R = mid - 1;
}
}
console.log(result);
function groupCounter(max) {
let cnt = 0;
let sum = 0;
for (let i = 0; i < N; i++) {
if (sum + arr[i] > max) {
sum = 0;
cnt++;
}
sum += arr[i];
}
return ++cnt;
}
}
let cnt = 0;
const input = () => stdin[cnt++];
let stdin = [];
rl.on("line", function (line) {
stdin.push(line);
}).on("close", function () {
solution();
process.exit();
});
Reference
この問題について([boj] 2343. その他のレッスン(node.js)), 我々は、より多くの情報をここで見つけました https://velog.io/@greenish0902/boj-2343.-기타-레슨-node.jsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol