https://www.acmicpc.net/problem/2741
const fs = require("fs");
const input =
process.platform === "linux"
? fs.readFileSync("/dev/stdin").toString().split(" ")
: `8`;
let numberN = Number(input);
let answer = "";
for (let i = 1; i <= numberN; i++) {
answer = answer + (i + "\n");
}
console.log(answer);
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.on('line', function (line) {
const numberN = Number(line);
let answer = '';
for (let i = 1; i <= numberN; i++) {
answer += i + '\n';
}
console.log(answer);
rl.close();
}).on('close', function () {
process.exit();
});
다른 블로거들의 여러 풀이과정을 비교해보며 느꼈지만 이 문제는 readline이나 fs모듈의 선택에 좌우하지 않았다. 이번 문제풀이의 핵심은 console.log를 최대한 덜쓰는 것이였다.
개행문자(\n
)를 활용해서 하나의 변수에 For문으로 계속 집어넣은 다음 console.log
로 받아왔던 변수를 딱 한 번만 출력하는 방법이 사실상 정답이였다. 비단 Node.js 뿐만이 아니라 \n
문자 삽입은 C언어에서도 유효하다고 한다.
이번 문제로 인해 console.log로 출력하는것이 생각보다 메모리를 많이 쓴다는 점과 이렇게 또 다른 출력 방법도 있다는 걸 알게됬다.