Programmers_점의 위치 구하기

post-thumbnail

점의 위치 구하기

Q : 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.

  • dot의 길이 = 2
  • dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다
  • dot이 [2, 4]로 x 좌표와 y 좌표 모두 양수이므로 제 1 사분면에 속합니다. 따라서 1을 return 합니다.

[풀이]
: 나는 if문으로 하드코딩을 하였는데 다른 사람이 한 풀이가 너무 멋있어서 그 풀이까지 가져왔다...

// 내가 푼 풀이
function solution(dot) {
    if (Math.sign(dot[0]) === 1 && Math.sign(dot[1]) === 1) {
        return 1
    } else if (Math.sign(dot[0]) === -1 && Math.sign(dot[1]) === 1) {
        return 2
    } else if (Math.sign(dot[0]) === -1 && Math.sign(dot[1]) === -1) {
        return 3
    } else {
        return 4
    }
}

// 다른 사람이 푼 풀이(멋있다..)
function solution(dot) {
    const [num,num2] = dot;
  	// dot에 있는 num을 곱해서 양수인지 음수인지 boolean값을 할당함
    const check = num * num2 > 0;
  	// 삼항 연산자로 dot[0]이 양수일경우면 1,4분면 아니면 2,3분면으로 하고
  	// 이 안에 중복 삼항 연산자로 check가 양수인지 음수인지 또 구분
    return num > 0 ? (check ? 1 : 4) : (check ? 3 : 2);
}

0개의 댓글