개발자 톡

연습문제 톡 [한양대 HCPC 2023] Pipelined

js로 입력 읽기...

등록일
2025-02-28 04:21:28
조회수
28
작성자
Avantgarde95

입력이 엄청나게 길어서 채점하면 readline으로는 런타임 에러가 많이 뜨네요.. 삽질 끝에 되는 코드 하나 알아내어 적어봅니다.


const fs = require("fs");

const buffer = fs.readFileSync("/dev/stdin", {encoding: "ascii"});
let bufferIndex = 0;

function readString(stop) {
    const chars = [];

    while (true) {
        const char = buffer[bufferIndex];
        bufferIndex++;

        if (char === stop || typeof char === "undefined") {
            return chars.join("");
        } else {
            chars.push(char);
        }
    }
}

// =====================
// 가장 긴 작업(= s[i] 최소)부터 순서대로 넣으면..
// 아무도 겹치지 않고 쭉 이동 가능.
// ex. a > b일 때, [[0, a)] -> [[a, 2a), [0, b)] - 무조건 안 겹침.
// 따라서 마지막 작업(= s[i] 최대) 시작하기 전까지의 시간(= N - 1) + 마지막 작업 소요 시간(= s[i])이 정답.

const N = Number(readString("\n"));
let maxS = 0;

for (let i = 0; i < N; i++) {
    const s = Number(readString(" "));
    maxS = Math.max(s, maxS);
}

console.log(N - 1 + maxS);


#[한양대_HCPC_2023]_Pipelined

이 카테고리의 톡 더보기