https://school.programmers.co.kr/learn/courses/30/lessons/120841
문제
- 점의 위치를 입력 받아 몇 사분면인지 출력한다.
해결
점의 위치 ( x,y)
- 제 1사분면 : x>= 0 , y>=0
- 제 2사분면 : x<= 0 , y>=0
- 제 3사분면 : x<= 0 , y<=0
- 제 4사분면 : x>= 0 , y<=0
function solution(dot) {
if(dot[0] >= 0) return dot[1] >=0 ? 1 : 4;
return dot[1] >= 0 ? 2 : 3
}
if(dot[0] >= 0) return dot[1] >=0 ? 1 : 4;
- dot[0]은 x 값을 나타낸다.
- x 값이 0 이상이면
- dot[1] >=0 ? 1 : 4; 을 반환한다.
- 만약 y값인 dot[1]이 0보다 같거나 크다면 1를 반환하고 아니면 4를 반환한다.
return dot[1] >= 0 ? 2 : 3
- 만약 그 위에 조건이 다 아니라면 ( x값이 0보다 같거나 작다면)
- y값인 dot[1]이 0보다 같거나 크다면 2를 반환하고 아니면 3을 반환한다.
- 조건 중 0,0은 입력되지 않는다라고 명시되어 있으므로 신경쓰지 않는다.
다른 사람 코드
function solution(dot) {
const [num,num2] = dot;
const check = num * num2 > 0;
return num > 0 ? (check ? 1 : 4) : (check ? 3 : 2);
}
const [num,num2] = dot;
- dot의 값을 [num,num2]로 나눔 => 구조 분해 할당
const check = num * num2 > 0
- 이 경우 check가 양수가 되는 경우는 제 1사분면과 제 3사분면이다.
return num > 0 ? (check ? 1 : 4) : (check ? 3 : 2); }
- x값인 num이 0보다 클때 check 값이 true일때 1사분면 false일때 4사분면이다.
- x값인 num이 0보다 작을때 check 값이 true일때 3사분면 false일때 2사분면이다.
2022.12.10 - [분류 전체보기] - [CleanCode] 삼항연산자를 어떻게 다룰까?
'algorithm > programmers' 카테고리의 다른 글
[JS] 전력망 둘로 나누기 -bfs (0) | 2023.10.24 |
---|---|
[JS] 오픈채팅방 - Object와 Map의 차이점 (0) | 2023.10.10 |
[PYTHON/파이썬] Level2 [1차]캐시 - LRU/deque/maxlen (0) | 2023.02.18 |
[PYTHON/파이썬] level 2 괄호회전하기 - deque (0) | 2023.02.18 |
[PYTHON/파이썬] Level2 행렬의 곱셈 - 3중 for문 / zip (0) | 2023.02.09 |
댓글