백준 node.js 입출력 방법
원래 코테는 파이썬이지! 라는 생각을 갖고 파이썬으로 준비하고 있었는데(별로 한 적은 없지만..)
갑자기 어떤 회사 서류를 덜컥 붙어버렸고.. JS로 코테를 보라는 무시무시한 미션이 주어졌다.
언어 선택은 불가능했고.. 급하게 백준 문제를 풀기 위해 node.js 입출력 방법 검색 ㄲ.. 이미 많이 나와있지만 그래도 한 번 정리해본다.
fs 모듈을 이용하는 방법
1. 한 줄로 입력을 받을 때
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split(' ');
let num = Number(input);
for (let i = 1; i <= num; i++) {
console.log(i);
}
2. 여러 줄로 입력을 받을 때
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]);
console.log(num1 + num2);
}
input에 배열로 다 받을 수 있는 더욱 간편한 방법(?)
const input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
문자열 앞뒤 공백 제거해주는 간편한 방법(?)
const input = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n");
readline으로 사용하는 방법
1. 한 개의 입력만 받을 때
function solution(input){
console.log(input);
}
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input;
rl.on("line", function(line){
input = line;
// input = parseInt(line); // 입력 값이 정수라면 parseInt로 형변환
rl.close();
}).on("close", function(){
solution(input);
process.exit();
})
2. 한 줄의 입력을 받을 때 (띄어쓰기로 구분)
function solution(input){
const [a,b] = input;
const answer = a+b;
console.log(answer);
}
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input;
let list = [];
rl.on('line', function(line) {
input = line;
rl.close();
}).on("close", function() {
// list = input.split(' ').map((el) => el);
list = input.split(' ').map((el) => parseInt(el)); // 입력값이 정수라면 parseInt로 형 변환
solution(list);
process.exit();
});
3. 여러 줄의 입력을 받을 때
//여러줄 입력시(n, input)
function solution(n, input) {
console.log(n);
console.log(input);
}
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", function(line) {
input.push(line)
//rl.close()가 없어서 계속 입력
//로컬에서 입력을 중지하려면 입력을 한 후 ctrl+d로 입력 종료
}).on("close", function() {
let n = parseInt(input[0]);
let list = input[1].split(' ').map((el) => parseInt(el));
solution(n, list);
process.exit();
});
//여러줄 입력시(input1, input2)
function solution(input1, input2) {
console.log(input1);
console.log(input2);
}
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", function(line) {
input.push(line)
//rl.close()가 없어서 계속 입력
//로컬에서 입력을 중지하려면 입력을 한 후 ctrl+d로 입력 종료
}).on("close", function() {
let list1 = input[0].split(' ').map((el) => parseInt(el));
let list2 = input[1].split(' ').map((el) => parseInt(el));
solution(list1, list2);
process.exit();
});
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split(' ');
let num = Number(input);
for (let i = 1; i <= num; i++) {
console.log(i);
}
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]);
console.log(num1 + num2);
}
const input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const input = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n");
1. 한 개의 입력만 받을 때
function solution(input){
console.log(input);
}
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input;
rl.on("line", function(line){
input = line;
// input = parseInt(line); // 입력 값이 정수라면 parseInt로 형변환
rl.close();
}).on("close", function(){
solution(input);
process.exit();
})
2. 한 줄의 입력을 받을 때 (띄어쓰기로 구분)
function solution(input){
const [a,b] = input;
const answer = a+b;
console.log(answer);
}
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input;
let list = [];
rl.on('line', function(line) {
input = line;
rl.close();
}).on("close", function() {
// list = input.split(' ').map((el) => el);
list = input.split(' ').map((el) => parseInt(el)); // 입력값이 정수라면 parseInt로 형 변환
solution(list);
process.exit();
});
3. 여러 줄의 입력을 받을 때
//여러줄 입력시(n, input)
function solution(n, input) {
console.log(n);
console.log(input);
}
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", function(line) {
input.push(line)
//rl.close()가 없어서 계속 입력
//로컬에서 입력을 중지하려면 입력을 한 후 ctrl+d로 입력 종료
}).on("close", function() {
let n = parseInt(input[0]);
let list = input[1].split(' ').map((el) => parseInt(el));
solution(n, list);
process.exit();
});
//여러줄 입력시(input1, input2)
function solution(input1, input2) {
console.log(input1);
console.log(input2);
}
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", function(line) {
input.push(line)
//rl.close()가 없어서 계속 입력
//로컬에서 입력을 중지하려면 입력을 한 후 ctrl+d로 입력 종료
}).on("close", function() {
let list1 = input[0].split(' ').map((el) => parseInt(el));
let list2 = input[1].split(' ').map((el) => parseInt(el));
solution(list1, list2);
process.exit();
});
출처: https://nyang-in.tistory.com/156
Author And Source
이 문제에 관하여(백준 node.js 입출력 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyejin4169/백준-node.js-입출력-방법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)