[프로그래머스] 각도기

Walter Mitty·2022년 10월 11일
1

Algorithm

목록 보기
8/29

문제 설명

각에서 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은 정수입니다.


입출력 예

angleresult
701
913
1804

입출력 예 설명
입출력 예 #1

  • angle이 70이므로 예각입니다. 따라서 1을 return합니다.

입출력 예 #2

  • angle이 91이므로 둔각입니다. 따라서 3을 return합니다.

입출력 예 #2

  • angle이 180이므로 평각입니다. 따라서 4를 return합니다.

내 풀이

class Solution {
    public int solution(int angle) {
        int answer = 0;
        if (0<angle && angle<90) {
            return 1;
        } else if (90==angle) {
            return 2;
        } else if (90<angle && angle<180) {
            return 3;
        } else if (180==angle) ; {
            return 4;
        }
    }
}

한번 더 사고한 풀이

// {}를 안쓰고 한줄에 하는 방법!
class Solution {
    public int solution(int angle) {
        if (angle > 0 && angle < 90) return 1;
        else if (angle == 90) return 2;
        else if (angle > 90 && angle < 180) return 3;
        else return 4;
    }
}

다른 사람의 풀이

// 삼항연산자를 반복 활용 하는 방법.
class Solution {
    public int solution(int angle) {
        return angle == 180 ? 4 : angle < 90 ? 1 : angle == 90 ? 2 : angle > 90 ? 3 : 0;
    }
}

사고
조건이 3개 이상이어서 if문을 써야한다고 생각했다. if 문으로 풀었을 때 문제는 없었지만, 답안 제출 후 다른 사람의 풀이를 보다가 {}없이 한줄로 조건을 적을 수 있다는 걸 알았고,

최종적으로는 삼항 연산자의 조건에 매개변수를 반복적으로 넣어 활용할 수 있다는 걸 알게되었다.


문제 출처 프로그래머스

1개의 댓글

comment-user-thumbnail
2022년 10월 11일

잘 보고 갑니다.
@)))) 김밥 좀 드시고 하세요

답글 달기