문제

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

https://www.acmicpc.net/problem/14681

예를 들어, 좌표가 (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 중 하나)를 출력한다.

 

 

출력

x와 y의 좌표 모두 0이 아니기 때문에 각각은 모두 음수 또는 양수라는 조건을 가지고 있다.

각각의 조건을 (+,+), (+,-), (-,-), (-,+)로 1, 2, 3, 4 사분면으로 구분할 수 있다.

 

입력값을 받기 위해 split('\')으로 분할한 다음 map(Number)로 x, y값을 구조분해할당으로 받아주고

if, if else의 조건문을 통해 1~4사분면을 구분해 출력한다.

 

각각 출력을 진행할 경우 이해하기 복잡할 수 있다고 생각해

result에 값을 저장하고 최종적으로 출력하게 진행했으며

마지막 else 부분의 값을 먼저 할당해 마지막 예외 부분을 미리 처리했다.

const [a, b] = require('fs').readFileSync(0).toString().split('\n').map(Number)

let result = 3
if(a>0 && b>0){
    result = 1
}
else if(a>0 && b<0){
    result = 4
}
else if(a<0 && b>0){
    result = 2
}
console.log(result)
const [a, b] = `12
5`.split('\n').map(Number)

let result = 3
if(a>0 && b>0){
    result = 1
}
else if(a>0 && b<0){
    result = 4
}
else if(a<0 && b>0){
    result = 2
}
console.log(result)

+ Recent posts