백준 온라인 저지에서 javascript로 문제 풀때 입력값을 처리하는 방법이다.
처음 백준 온라인 저지에서 문제 풀이 시작했을때 어떻게 해야하는지 몰랐었는데, 이제 이해가 된다.
백준에서는 input에 대해서도 직접 코드를 작성해줘야 한다.
var fs = require('fs')
// 문자 하나
var input = fs.readFileSync('/dev/stdin').toString()
// split으로 한 칸 띄어쓰기로 구분 .split("공백")
// input[0], input[1] 배열에서 꺼내쓰면 됨
var input = fs
.readFileSync('/dev/stdin')
.toString()
.split(' ')
// 줄바꿈으로 구분할 경우:
var input = fs
.readFileSync('/dev/stdin')
.toString()
.split('\n')
// 만약 input이 숫자인 경우:
var input = fs
.readFileSync('/dev/stdin')
.toString()
.split(' ')
.map(function(a) {
return +a
})
위의 fs로 입력받는 방식은 일부 문제에서는 오류가 난다.
아래 readline 방식으로 입력받는 것을 추천함.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// let input = [];
rl.on('line', function (line) {
let n = Number(line);
// 여기에 작성 ㄱㄱ
}).on('close', function () {
process.exit();
});
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let result = '';
let number;
const onInput = (input) => number = Number(input);
const onClose = () => {
for(let i=1; i<=number; i++) {
result += `${i}\n`;
}
console.log(result);
process.exit();
}
rl.on('line', onInput).on('close', onClose);
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
let input = line.split(' ');
// 여기에 입력
console.log();
}).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 () {
// 여기에 코드 작성함. 입력 숫자 2개인경우 x, y로 해줬음.
let x = Number(input[0]);
let y = Number(input[1]);
process.exit();
});
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const array = [];
// 입력부분 작성
const onInput = (input) => array.push(input);
// 출력부분 작성
const onClose = () => {
for(let i = 1; i <= array[0]; i++) {
const [num1, num2] = array[i].split(' ');
console.log(Number(num1) + Number(num2));
}
process.exit();
}
rl.on('line', onInput)
.on('close', onClose);