💻 node.js 입출력
node.js에서 입출력을 받을 때는 readline 모듈을 사용한다.
백준에서 문제를 풀 때 fs모듈을 사용하는 것이 더 빠르다고 하지만 나는 onecompiler로 문제를 풀고 있기 때문에 readline 모듈을 쓰는 것이 아직은 좀 더 편하다.
readline 모듈을 이용해 입출력의 틀을 잡자면 아래 코드와 같다.
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
rl.on('line', function (line) {
// 입력 받기
})
.on('close', function () {
// 문제에 따른 알고리즘 작성 후 console.log()로 답 출력
process.exit();
});
위 주석으로 처리해둔 입력받는 부분에서는 line을 통해 사용자가 입력한 문자열을 받을 수 있다.
그리고 이것을 다른 변수에 저장한 후 아래에서 입력된 데이터를 알맞게 처리하면 되는 것이다.
line에는 문자열 형식으로 저장되기 때문에 정수형으로 바꾸기 위해서는 parseInt()를 사용해 형변환을 해야 한다.
예시 1. 여러 개의 수가 한줄로 입력될 때 (공백으로 구분)
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
let arr = [];
rl.on('line', function (line) {
arr = line.split(' ');
})
.on('close', function () {
console.log(arr);
process.exit();
});
arr이라는 빈 배열을 선언한 후 들어온 입력(line)을 공백으로 구분해 arr에 넣어주었다.
사진과 같이 여러 개의 수를 공백을 포함해 입력하였을 때 공백을 기준으로 숫자가 분리되어 문자열 형태로 arr 배열에 들어있는 것을 볼 수 있다.
만약 숫자인 형태로 저장하고 싶다면 따로 arr.map(Number)를 해주면 된다.
예시 2. 여러 줄이 입력될 때
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
let arr = [];
rl.on('line', function (line) {
arr.push(line);
})
.on('close', function () {
console.log(arr);
process.exit();
});
line을 이용해 입력을 받을 때는 입력이 끝날 때까지 한줄씩 받아온다.
따라서 arr이라는 빈 배열을 선언한 후 입력받을 때마다 arr이라는 배열에 push한다.
역시 기본형이 문자형이기 때문에 arr 배열에는 문자형으로 된 숫자들이 들어오게 된다.
만약 이를 정수형으로 바꾸고 싶다면 parseInt()를 통해 정수형으로 받아 arr에 push할 수 있다.
+ 추가로 Number()를 사용하거나 parseFloat()을 사용할 수 있다.
'Algorithm > Node.js(백준)' 카테고리의 다른 글
[10799번] 쇠막대기 (0) | 2021.12.26 |
---|---|
[10797번] 10부제 (0) | 2021.12.05 |
[2309번] 일곱 난쟁이 (0) | 2021.12.04 |
[13701번] 중복 제거 (0) | 2021.12.04 |
댓글