꾸준하게
[JS코딩테스트] 점의 위치 구하기 본문
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
반응형
'JS코딩테스트' 카테고리의 다른 글
[JS코딩테스트] 피자 나눠 먹기 (3) (0) | 2023.03.14 |
---|---|
[JS코딩테스트] 중복된 숫자 개수 (0) | 2023.03.13 |
[JS코딩테스트] 배열의 평균값 (0) | 2023.03.09 |
[JS코딩테스트] 양꼬치 (0) | 2023.03.08 |
[JS코딩테스트] 각도기 (0) | 2023.03.06 |