티스토리 뷰

코딩테스트

Lv.0 Swift 각도기

알롱도담쓰 2024. 3. 17. 18:33

문제 설명

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

 

내 답안

func solution(_ angle:Int) -> Int {
    var result = 0
    
    switch angle {
        case 1..<90: return 1
        case 90: return 2
        case 91..<180: return 3
        default: return 4
    }
    
    return result
}

 

접근 방법

 

다른 풀이

func solution(_ angle:Int) -> Int {
    var result = 0
    
    if 0 < angle && angle < 90 {
        result = 1
    } else if angle == 90 {
        result = 2
    } else if 90 < angle && angle < 180 {
        result = 3
    } else if angle == 180 {
        result = 4
    }
    
    return result
}

 

func solution(_ angle:Int) -> Int {
    return angle <= 90 ? ( angle  < 90 ? 1 : 2) : (angle < 180 ? 3 : 4)
}

 

 

생각해본 것

삼항연산자로 푸는 방법도 있었는데, 3개 이상의 조건을 삼항연산자로 작성하는 게 과연 좋을까? 라는 생각이 조금 들었는데...

내 기준으로 봤을 때 가독성은 switch 문이 가장 좋은 것 같다

'코딩테스트' 카테고리의 다른 글

Lv.0 swift 세균 증식  (0) 2024.03.17
Lv.0 swift 짝수의 합  (0) 2024.03.17
Lv.0 swift 두 수의 나눗셈  (1) 2024.03.17
11월 7일 제일 작은 수 제거하기  (0) 2023.11.08
11월 7일 핸드폰 번호 가리기  (0) 2023.11.06
최근에 올라온 글