프로그래머스 <각도기>

seul-bean·2023년 7월 5일
0

Practice Coding Test

목록 보기
2/8
post-thumbnail

🍎 각도기

https://school.programmers.co.kr/learn/courses/30/lessons/120829

문제 설명
각에서 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은 정수입니다.

입출력 예 설명
입출력 예 #1

angle이 70이므로 예각입니다. 따라서 1을 return합니다.
입출력 예 #2

angle이 91이므로 둔각입니다. 따라서 3을 return합니다.
입출력 예 #2

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




🍎 내가 생각한 solution

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

좀 더 간단하게 표현할 수 없을까 고민을 해보았지만 생각이 나지 않아 정석?대로 if문을 사용해서 풀어보았다.
switch 문도 생각해보았으나 결국...




다른 사람의 문제 풀이
신박하다 생각했던 다른 사람의 문제 풀이

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

이런식으로 삼항연산자를 쓸 수 있는지 몰랐는데 이 문제를 통해 알게 되었다.


function solution(angle) {
    let answer = 1;

    if (angle >= 90) answer++;
    if (angle > 90) answer++;
    if (angle >= 180) answer++;
    if (angle > 180) answer++;

    return answer;
}

이렇게 증감연산자를 사용해서 1씩 올리는것도 생각해보지 못한 방식이다.

profile
안녕하세요 성장하는 새싹 프론트엔드 개발자 입니다🌱

0개의 댓글