백준 자바스크립트로 풀기!

Lenny·2022년 6월 20일
0
post-custom-banner

백준에서 입/출력이 있는 문제를 자바스크립트로 풀 때 다음과 같은 방식으로 풀어주어야한다.

아마 자바스크립트에는 자바나 파이썬처럼 콘솔에 입력받는 함수가 없어서, 저런식으로 파일에서 입력을 받아서 처리하기 때문인것같다.

fs 모듈

// 예제 입력이 한줄로 되어 있을 때
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split(' ');

let num = Number(input);


-----------------------------------------------

// 예제 입력이 여러줄로 되어 있을 때
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

// 예제 데이터 개수가 주어진 경우
let count = input[0];
let numbers = [];

for (let i = 1; i < input.length; i++) {
  if (input[i] !== '') {
    numbers.push(input[i].split(' '));
  }
}

for (let i = 0; i < numbers.length; i++){
  let num1 = Number(numbers[i][0]);
  let num2 = Number(numbers[i][1]);
}

readline 모듈

// 예제 입력이 한줄로 되어 있을 때
 const readline = require('readline');
 const rl = readline.createInterface({ 
     input: process.stdin, 
     output: process.stdout 
     }); 
rl.on('line', function(line) { console.log(line); 
rl.close(); 
}).on("close", function() { 
    process.exit(); 
}); 

----------------------------------------- 
// 예제 입력이 여러줄로 되어 있을 떼 
const readline = require('readline');
const rl = readline.createInterface({
     input: process.stdin, 
     output: process.stdout 
    }); 
    
let input = []; 

rl.on('line', function (line) {
     input.push(line) 
    }) 
    .on('close', function () { 
        console.log(input);
        process.exit(); 
    });
profile
🧑‍💻
post-custom-banner

0개의 댓글