글 작성자: 망고좋아
반응형

🎯 Node.js 콘솔창 입력받기

  • 백준에서 알고리즘 문제를 풀 때 자바스크립트 입력받는 방법을 알아보자!

 

📝 한 줄 값 입력받기

  • 자바스크립트에서는 readline 모듈을 이용하면 콘솔을 통해 값을 입력받을 수 있다.

 

📕 모듈 가져오기

const readline = require("readline");

 

📕 readline 모듈을 이용해 입출력을 위한 인터페이스 객체 생성

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

 

📕 rl 변수

rl.on("line", (line) => {
    // 한 줄씩 입력받은 후 실행할 코드
    // 입력된 값은 line에 저장된다.
    rl.close(); // 필수!! close가 없으면 입력을 무한히 받는다.
});
rl.on('close', () => {
    // 입력이 끝난 후 실행할 코드
        process.exit();
})

 

한 줄 입력받기 :: 정리

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

rl.on("line", (line) => {
    console.log("input: ", line);
    rl.close();
});

rl.on('close', () => {
        process.exit();
})

 

📝 공백을 기준으로 값 입력받기

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

let input = []

rl.on("line", (line) => {
    input = line.split(' ').map(el => parseInt(el)); // 1 2 3 4
    rl.close();
});

rl.on('close', () => {
    input.forEach(el => {
        console.log(el);
    })
    process.exit();
})

// 입력
// 1 2 3

// 출력
// 1
// 2
// 3

  • 입력되는 것은 모두 문자열이기 때문에 숫자 연산을 할 수 없다. 따라서 숫자 연산을 위해 map() 함수를 사용하고 parseInt()를 이용해 모든 문자를 숫자로 변환해준다.

 

📝 여러 줄 입력받기

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

let input = []

rl.on("line", (line) => {
    input.push(line);
});

rl.on('close', () => {
    console.log(input);
    process.exit();
})

// 입력
// 1
// 2
// a
// b


// 출력 
// ['1', '2', 'a', 'b']
  • 입력 종료는 ctrl + c

 

📝 공백이 포함된 문자 여러 줄 입력받기

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

let input = []

rl.on("line", (line) => {
    input.push(line.split(' ').map(el => parseInt(el)));
});

rl.on('close', () => {
    console.log(input);
    process.exit();
})

// 입력
// 1 2 3
// 4 5 6

// 출력 
// [[1, 2, 3], [4, 5, 6]]

 

📌 참고

반응형

'프로그래밍 > Node.js' 카테고리의 다른 글

[Node.js] Node.js 모듈의 작성과 사용  (0) 2021.12.02
[Node.js] Node.js 모듈  (0) 2021.12.02
[Node.js] npm과 npx는 무엇인가?  (0) 2021.12.02
[Node.js] Node.js 이벤트 루프  (0) 2021.12.02
[Node.js] Node.js 특징  (0) 2021.12.02