JS코딩테스트
[JS코딩테스트] 점의 위치 구하기
DaeunCoding
2023. 3. 10. 07:29
728x90
반응형
[나의 풀이]
function solution(dot) {
let answer;
if(dot[0] > 0 && dot[1] > 0){
answer = 1;
} else if(dot[0] < 0 && dot[1] > 0){
answer = 2;
} else if(dot[0] < 0 && dot[1] < 0){
answer = 3;
} else if(dot[0] > 0 && dot[1] < 0){
answer = 4;
}
return answer;
}
코드가 반복적이고 길어져서 효율적인 풀이 방식은 아닌 것 같다.
다른 풀이 방식을 살펴보자.
[다른 풀이]
function solution(dot) {
const [num,num2] = dot;
const check = num * num2 > 0;
return num > 0 ? (check ? 1 : 4) : (check ? 3 : 2);
}
비구조화 할당(Destructuring assignment)을 사용했다.
제 1사분면, 제 4사분면은 x>0이므로 삼항연산자(Conditional(ternary) operator)로
1,4 : 3,2를 구분해준다.
그리고 1, 4와 3, 2의 차이는 y가 0보다 큰지 작은지를 따져서 구분해준다.
근데 check = num2 > 0;로도 충분히 구분할 수 있을텐데, num * num2 > 0;로 굳이 코드를 짠 이유는 잘 모르겠다.
[또다른 풀이]
function solution(dot) {
return dot[0] > 0 ? dot[1] > 0 ? 1 : 4 : dot[1] > 0 ? 2 : 3;
}
이것도 삼항연산자를 사용했다.
제일 간결한 풀이인 것 같다.
728x90
반응형