문제 설명
각에서 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은 정수입니다.
입출력 예
| angle | result |
| 70 | 1 |
| 91 | 3 |
| 180 | 4 |
나의 코드
function solution(angle) {
let answer = "";
if (0 < angle && angle < 90) {
answer = 1;
} else if (angle === 90) {
answer = 2;
} else if (angle === 180) {
answer = 4;
} else {
answer = 3;
}
return answer;
}
방식
각도를 조건별로 나누어 순서대로 비교한 뒤, 해당 범위에 맞는 결과값을 반환하는 방식으로 풀이하였다.
case 1 다른 사람의 코드
function solution(angle) {
return [0, 90, 91, 180].filter(x => angle>=x).length;
}
나와의 차이점
기준값 배열을 만든 뒤 filter로 angle이 통과한 기준만 남기고, length로 그 개수를 세어 결과값으로 활용했다.
case 2 다른 사람의 코드
function solution(angle) {
return angle < 90 ? 1 : angle === 90 ? 2 : angle < 180 ? 3 : 4;
}
나와의 차이점
삼항연산자를 활용해 같은 조건 구조를 한 줄로 압축하여 더욱 간결하게 표현했다.
느낀점
나는 조건을 그대로 하나씩 분류하는 직관적인 방식을 떠올랐지만, 다른 풀이들을 보면서 같은 문제도 훨씬 다양한 방식으로 접근할 수 있다는 점을 느꼈다. 아직은 가장 단순하고 익숙한 방법부터 먼저 생각하는 경향이 있지만, 앞으로는 문제를 해결하는 것에서 끝나는 것이 아니라 '더 간결한 방법은 없는지', '다른 구조로 바꿀 수는 없는지'까지 한 번 더 고민하는 연습이 필요하다고 느꼈다.
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 외계행성의 나이 (0) | 2026.05.26 |
|---|---|
| [프로그래머스] 짝수의 합 (0) | 2026.05.05 |
| [프로그래머스] 특정 문자 제거하기 (0) | 2026.04.29 |
| [프로그래머스] 문자 반복 출력하기 (0) | 2026.04.28 |
| [프로그래머스] 짝수 홀수 개수 (0) | 2026.04.28 |