백준에서 입/출력이 있는 문제를 자바스크립트로 풀 때 다음과 같은 방식으로 풀어주어야한다.
아마 자바스크립트에는 자바나 파이썬처럼 콘솔에 입력받는 함수가 없어서, 저런식으로 파일에서 입력을 받아서 처리하기 때문인것같다.
// 예제 입력이 한줄로 되어 있을 때
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]);
}
// 예제 입력이 한줄로 되어 있을 때
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();
});