오늘 뭐했냐/기억하면 좋을 문제들

각도기 구하기

스스로에게 2023. 5. 25. 20:36

주어진 각도가 예각인지 직각인지 둔각인지 평각인지를 알려주는 함수이다

// 각도 구하기
// 1예각 : 0 < angle < 90
// 2직각 : angle = 90
// 3둔각 : 90 < angle < 180
// 4평각 : angle = 180
function solution(angle) {
    var answer = 0;
    if (0 < angle && angle < 90){
        answer = 1;
    } else if(angle === 90){
        answer = 2;
    } else if(90 < angle && angle <180){
        answer = 3;
    } else if(angle === 180){
        answer = 4;
    } else{ answer = `범위를 초과하였습니다`}
    return answer
}

작동의 문제는 없지만 역시 복잡하다 

 

//Array.prototype.filter()
//주어진 함수(콜백함수)의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.
function solution(angle) {
    return [0, 90, 91, 180].filter(x => angle>=x).length;
}
// 조건에 맞는 요소만 모아 새로운 배열을 만들고 그 배열의 길이를 반환한다
// 예) 160이 주어진 경우 
//[0, 90, 91].length => 3

이렇게 메서드를 활용하거나 

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

삼항연산자를 중첩해서 만들 수 있다 하지만 삼항연산자 중첩은 가독성이 떨어져서 좋지 않아 보인다

 

일단은 작동만 잘하면 되겠지만 수준을 높이려면 '이런 기능을 하는 메서드가 있다' 라는 걸 알아야 검색해서라도 찾아 쓰니까 다른 사람들의 풀이를 확인하고 모르는 거는 검색해서 알고 알고 있던 것도 다시 한 번 생각하는 시간이 중요할 것 같다 

'오늘 뭐했냐 > 기억하면 좋을 문제들' 카테고리의 다른 글

2주차 숙제  (0) 2023.05.25
짝수의 합  (0) 2023.05.25
숫자 비교  (0) 2023.05.25
출생년도 구하기  (0) 2023.05.25
몫 구하기  (0) 2023.05.25