KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | Algorithm CODEKATA
🏹 각도기
🏷 Topic : 조건식 if문
문제 설명
각에서 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합니다.
✔ Solution with if statement
class Solution {
public int solution(int angle) {
int answer = 0;
if (angle < 90) {
answer = 1;
} else if (angle == 90) {
answer = 2;
} else if (angle < 180) {
answer = 3;
} else {
answer = 4;
}
return answer;
}
}
채점 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍
📌 오늘 문제의 목표 : 매개변수로 준 각의 범위에 따라 정수값을 반환하라.
int angle이 예각일 때, 1 ( 0 < angle < 90 )
직각일 때, 2 ( angle = 90 )
둔각일 때, 3 ( 90 < angle < 180 )
평각일 때, 4 ( angle = 180 )
1. 반환값을 넣을 정수형 변수 초기화하자.
int answer = 0;
2. if and else if문으로 angle의 값에 따라 answer에 문제에서 제시한 값을 할당하자.
angle이 90도보다 작으면 예각이므로 answer에 1을 할당하자.
문제의 제한 사항에서 0 < angle < 180이라고 했으므로 0 < angle 조건은 생략
if (angle < 90) { answer = 1; }위의 조건을 만족하지 않을 때, angle이 90도이면 직각이므로 answer에 2를 할당하자.
else if (angle == 90) { answer = 2; }위의 조건를 만족하지 않을 때, angle이 180도 보다 작으면 90 < angle < 180이므로 둔각이다. answer에 3을 할당하자.
else if (angle < 180) { answer = 3; }그 외의 경우에는 angle이 180도이므로 평각이다. answer에 4를 할당하자.
else { answer = 4; }
3. if문의 실행결과 answer에 할당된 값을 반환하자
return answer;
💬 무엇을 새롭게 알았는지
if and else if문 외에 다른 방법으로 써 보려고 했는데 잘 안됨.
그래도 성공한 코드
class Solution {
public int solution(int angle) {
int answer = 0;
int num = 1;
while (answer == 0) {
if (num % 2 == 0) {
if (angle == num / 2 \* 90) {
answer = num;
break;
}
} else {
if (angle < num / 2 \* 90 + 90) {
answer = num;
break;
}
}
num++;
}
return answer;
}
}