[Javascript] LV.0 각도기

은비·2023년 6월 27일
0

Programmers_CodingTest

목록 보기
9/72

문제 설명

각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.

  • 예각 : 0 < angle < 90
  • 직각 : angle = 90
  • 둔각 : 90 < angle < 180
  • 평각 : angle = 180

제한사항

  • 0 < angle ≤ 180
  • angle은 정수입니다.

입출력 예

angleresult
701
913
1804

입출력 예 설명

입출력 예 #1

  • angle이 70이므로 예각입니다. 따라서 1을 return합니다.

입출력 예 #2

  • angle이 91이므로 둔각입니다. 따라서 3을 return합니다.

입출력 예 #2

  • angle이 180이므로 평각입니다. 따라서 4를 return합니다.

✍ SOLUTION1

function solution(angle) {
    if(angle < 90){
        return 1
    }else if(angle === 90){
        return 2
    }else if(angle < 180){
        return 3
    }else if(angle ===180){
        return 4
    }
}

✍ SOLUTION2

function solution(angle) {
    switch(angle) {
        case 90: return 2;
        case 180: return 4;
        default:
            return angle > 0 && angle < 90 ? 1 : 3;
    }
}

/* switch를 이용하여 90과 180은 case별로 return을 작성하고, default값에 조건문을
작성하여 삼항연산자로 간결하게 표현해준다. */

✍ SOLUTION3

function solution(angle) {
    return [0, 90, 91, 180].filter(x => angle>=x).length;
}

/* 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 리턴할 수 있도록 
[0, 90, 91, 100]를 filter로 angle>=x 조건을 만족하는 angle을 리턴하여 
그 배열에 length를 해준다. */

✍ SOLUTION4

const solution = (angle) => [0, 90, 91, 180].filter(x => angle>=x).length;

// SOLUTION3의 방법에서 화살표함수로 변경해주었다.

✍ SOLUTION5

function solution(angle) {
    return angle < 90 ? 1 : angle === 90 ? 2 : angle < 180 ? 3 : 4;
}

// 삼항 연산자를 이용하여 간단하게 표현해준다.

✍ SOLUTION6

const solution = (angle) => angle < 90 ? 1 : angle === 90 ? 2 : angle < 180 ? 3: 4;

// SOLUTION5의 방법에서 화살표함수로 변경해주었다.

출처 : 프로그래머스 스쿨 | 코딩테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/120829

0개의 댓글