백준 14681번 사분면고르기 풀기
문제
흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. “Quadrant n”은 “제n사분면”이라는 뜻이다.

예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.
점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.
입력
첫 줄에는 정수 x가 주어진다. (−1000 ≤ x ≤ 1000; x ≠ 0) 다음 줄에는 정수 y가 주어진다. (−1000 ≤ y ≤ 1000; y ≠ 0)
출력
점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다.
해결방법
node.js로 푸는데 문제가 많은듯하다.
fs.readFileSync('/dev/stdin')
처럼 입력값을 받아 문제를 풀려했지만 런타입에러를 내뿜는다. 찾아보니 백준에서 해당방법을 권하지않고
readline.createInterface({
input: process.stdin,
output: process.stdout
});
을 통해서 입력값을 받아 문제를 풀기를 권장한다고 공지에 나와있다.
그것도 모르고 자꾸 런타임에러를 뱉어서 문제푸는거보다 입력값 받는데 애를 먹었다. 디버깅 기능을 지원을 안해서 더욱 난감함…. 알고리즘 풀기위해 입력값 정제하는게 불편한게 백준알고리즘 문제풀이의 단점…..
일단 백준알고리즘 어느정도 풀고 공부를 마치면 leetcode로 넘어갈 생각이다.
let input = [];
rl.on('line', function (line) {
input.push(line)
}).on('close', function () {
const x = parseInt(input[0]);
const y = parseInt(input[1]);
if(x > 0 && y > 0){
console.log(1)
}
if(x < 0 && y > 0){
console.log(2)
}
if(x < 0 && y < 0){
console.log(3)
}
if(x > 0 && y < 0){
console.log(4)
}
process.exit();
});
해당 문제는 생각할건 없었고, 조건에따라 if문 작성을 잘해서 출력해주면 쉽게 풀린다.