개발자 톡
연습문제 톡
[한양대 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