728x90
[14681번 사분면 고르기] 문제 풀이에서 계속 런타임 에러가 났다.
처음엔 답을 잘못 제출 했나? 했는데 아무리 봐도 맞는거 같아서 검색해봤더니
fs 모듈 문제라고 한다
https://www.acmicpc.net/board/view/66736
이전의 다른 문제들은 다 fs 모듈로 입력값을 받아서 원인을 찾지 못했던거다.
그래서 알아본 readline 모듈.
Readline 모듈
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();
})
매개변수 line에 문자열로 입력값이 할당된다.
그리고 console.log(line); 에 입력 받은 값이 출력 된다.
만약 위의 코드에서 rl.close(); 부분이 없다면
무한으로 입력을 받으며 받은 만큼 실시간으로 console.log를 찍는다.
e.g. 두 수의 합
const readline = require('readline');
const rl = realine.createInterface({
input: process.stdin,
output: process.stdout,
})
let input = [];
rl.on('line', function(line) {
input = line.split(' ').map((el) => parseInt(el));
}).on('close', function() {
console.log(input[0] + input[1]);
process.exit();
})
/*
input: 1 2
output: 3
*/
위 코드를 콘솔에서 실행하게 되면 close 이벤트에 걸리지를 않아서 console.log가 찍히지 않고, 입력만 계속해서 받게 된다.
그 이유는 콘솔에서 실행했기 때문이다.
2. 여러 줄 입력
const readline = require('readline');
const rl = realine.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();
})
++
또 다른 14681번 사분면 고르기 입력 받는 방법!
fs 모듈의 readFileSync의 인수 부분을 0 으로 하기
https://www.acmicpc.net/board/view/108553
Reference
https://wooooooak.github.io/node.js/2018/09/26/Node.js-%EC%9E%85%EB%A0%A5-%EB%B0%9B%EA%B8%B0/
728x90
'ETC > 📋 Coding Tests' 카테고리의 다른 글
[백준/node.js] 1557번 단어공부 :: 문자열 풀이 객체활용 (0) | 2023.12.07 |
---|---|
[백준/node.js] 15552번 빠른 A+B :: 시간초과 (0) | 2023.11.29 |
Node.js로 백준(BOJ) 문제풀기 (0) | 2023.11.23 |
주니어 개발자의 코알못 탈출기 🏃🏻♂️ (2) | 2023.11.23 |
[프로그래머스] 추억 점수 (JS) - Level.1 (0) | 2023.11.11 |