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합니다.
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씩 올리는것도 생각해보지 못한 방식이다.