백준 2741번 JavaScript 문제풀이

Cho Dragoo·2021년 5월 9일
0
post-thumbnail

백준 2741번 JavaScript 문제 N 찍기

https://www.acmicpc.net/problem/2741



본인이 제출한 답


fs모듈의 경우

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);

readline모듈의 경우

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로 출력하는것이 생각보다 메모리를 많이 쓴다는 점과 이렇게 또 다른 출력 방법도 있다는 걸 알게됬다.

profile
어떤 문제든 파악 할 수 있으며 해결책을 찾을 수 있는 개발능력을 꿈꾸고 있습니다.

0개의 댓글