728x90
문제 설명
각에서 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은 정수입니다.
문제
class Solution {
public int solution(int angle) {
return ;
}
}
내 잘못된 풀이
class Solution {
public int solution(int angle) {
int ans = 0;
if(0 < angle < 90){
ans = 1;
}else if(angle == 90){
ans = 2;
}else if(90 < angle < 180){
ans = 3;
}else{
ans = 4;
}
return ans;
}
}
정답
class Solution {
public int solution(int angle) {
int ans = 0;
if(0 < angle && angle < 90){
ans = 1;
}else if(angle == 90){
ans = 2;
}else if(90 < angle && angle < 180){
ans = 3;
}else{
ans = 4;
}
return ans;
}
}
다른풀이1 (삼항연산자 사용)
class Solution {
public int solution(int angle) {
return angle == 180 ? 4 : angle < 90 ? 1 : angle == 90 ? 2 : angle > 90 ? 3 : 0;
}
}
다른풀이2 (switch-case 사용)
class Solution {
public int solution(int angle) {
int answer = 0;
String gak = null;
if(0 < angle && angle < 90){
gak = "예각";
};
if(angle == 90){
gak = "직각";
};
if(90 < angle && angle < 180){
gak = "둔각";
};
if(angle == 180){
gak = "평각";
};
switch(gak){
case "예각":
answer = 1;
break;
case "직각":
answer = 2;
break;
case "둔각":
answer = 3;
break;
case "평각":
answer = 4;
break;
}
return answer;
};
}
- 연산을 하나씩 시켜야 한다. 수학처럼 0 < a < 1 이런 식으로 하면 안된다!!!
- 변수(int ans = 0;) 는 항상 자동으로 생성해줄것... 변수를 리턴해야하니까!
'Back-end > Algorithm' 카테고리의 다른 글
[프로그래머스][코딩테스트 연습] 가운데 글자 가져오기 (0) | 2022.11.18 |
---|---|
[항해99] Java 과제 - 알고리즘 첫날/ 기본3문제 (0) | 2022.11.18 |
최대값과 최소값의 합 구하기 (0) | 2022.10.20 |
[프로그래머스] 스킬 체크 테스트 level1 - 나누어 떨어지는 숫자 배열 (3) | 2022.09.16 |
[java] 사각형 클래스를 상속받아 객체지향구조 구현 (4) | 2022.09.05 |