https://www.acmicpc.net/problem/14681
const fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split(`\n`).map(i => +i);
const X = input[0];
const Y = input[1];
if(X > 0 && Y >0){
console.log(1);
}else if(X < 0 && Y > 0 ){
console.log(2);
}else if(X < 0 && Y < 0 ){
console.log(3);
}else if(X > 0 && Y < 0 ){
console.log(4);
}
원래 하던데로 fs모듈
을 이용했는데 런타임에러가 나타나 문제를 해결하지 못했었다.
결과를 구하는 식은 변경하지 않고, readline모듈
을 이용해 입력을 받아 해결했다.
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on("line", function (line) {
input.push(parseInt(line));
}).on("close", function () {
const X = input[0];
const Y = input[1];
if(X > 0 && Y >0){
console.log(1);
}else if(X < 0 && Y > 0 ){
console.log(2);
}else if(X < 0 && Y < 0 ){
console.log(3);
}else if(X > 0 && Y < 0 ){
console.log(4);
}
process.exit();
});
백준을 풀때 비주얼 vscode를 이용해 메모장에 입력값을 넣고 입력값을 받아 문제를 풀어보고 코드를 복사하는 식으로 문제를 풀고 있다.
fs모듈
은 fs.readFileSync()
을 이용해 파일 경로를 명시해주면 메모장에 있는 입력값을 가져와 입력값을 받아 올 수 있었는데 readline모듈
은 이번에 처음 접해보는 거라 입력값받는 코드를 어떻게 가져와야 하는지 난감했다.
참고한 글 - avaScript에서 줄 단위로 파일 읽기
const fs = require('fs');
const file = './input.txt';
기존에 있는 readline모듈
에 위의 코드(파일 경로)를 추가한다.
const rl = readline.createInterface({
input : fs.createReadStream(file),
output : process.stdout,
terminal : false
});
백준풀이할때에는 input: process.stdin
부분을 fs.createReadStream(file)
부분으로 변경해주면 메모장에 저장된 값을 입력 받을 수 있다.
const readline = require('readline');
const fs = require('fs');
const file = './input.txt';
const rl = readline.createInterface({
input : fs.createReadStream(file),
output : process.stdout,
terminal : false
});
let input = [];
rl.on('line', function(line){
input.push(line);
})
.on('close', function(){
const X = input[0];
const Y = input[1];
if(X > 0 && Y >0){
console.log(1);
}else if(X < 0 && Y > 0 ){
console.log(2);
}else if(X < 0 && Y < 0 ){
console.log(3);
}else if(X > 0 && Y < 0 ){
console.log(4);
}
process.exit();
})