[js] 각도기_Protractor
[문제 설명]
각에서 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 |
[입출력 예 설명]
입출력 예 #1
- angle이 70이므로 예각입니다. 따라서 1을 return합니다.
입출력 예 #2
- angle이 91이므로 둔각입니다. 따라서 3을 return합니다.
입출력 예 #2
- angle이 180이므로 평각입니다. 따라서 4를 return합니다.
[문제 풀이]
function solution(angle) {
if (angle<90) return 1;
if (angle == 90) return 2;
if (angle<180) return 3;
return 4;
}
[해설]
굉장히 직관적인 코드라 해설 생략하겠습니다.
다만 angle 설정시 0<angle<90 으로 설정하면 오류 납니다!
제가 사용한 코드처럼 angle < 90으로 설정하거나, && 연산자 사용하셔야 합니다.
[다른 사람 풀이]
function solution(angle) {
return [0, 90, 91, 180].filter(x => angle>=x).length;
}
이 풀이 때문에 이번 문제를 가져온건데요.
저도 직관적으로 풀지 않되 가독성을 높인 코드를 작성하고 싶어서 짧은 시간이지만 고민하고, 마땅히 생각나지 않아 그냥 직관적인 코드를 구현했습니다.
이 코드에서는 filter를 사용해 angle이 경계값이 담긴 배열의 수와 같거나 클 경우, 그 배열의 길이를 return함으로써 문제를 해결했습니다.
filter 함수의 사용에 대해 다시 한 번 깨닫게 되는 코드입니다 ㅠㅠ
[느낀점]
최소한 자주 사용되는 filter, sort, map 등의 함수에 대해서는 자주 써보고 손에 익힐 수 있도록 더 노력해야겠습니다.
또한 저는 Level 0을 건너뛰고 1부터 시작했는데 Level 0도 무시하지 말아야겠습니다...
기초부터 차근차근, 단단히 만들어놓겠습니다!!
[github] - Protractor.js
https://github.com/yh725k/javascript.git
GitHub - yh725k/javascript
Contribute to yh725k/javascript development by creating an account on GitHub.
github.com