본문 바로가기
Language/Java

[Programmers | Java | 코딩테스트 입문 문제 풀이] 각도기 - Solution with If statement

by ㅇ달빛천사ㅇ 2024. 6. 3.
728x90

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;  
    }  
}
채점 결과 채점 결과
728x90


Top