Where who wants to meet someone

백준 Swift [5073] 삼각형과 세 변 본문

백준 알고리즘 문제 기록/기하: 직사각형과 삼각형

백준 Swift [5073] 삼각형과 세 변

Lust3r 2023. 7. 2. 17:44
728x90

난이도

브론즈 III

 

문제

https://www.acmicpc.net/problem/5073

 

5073번: 삼각형과 세 변

각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.

www.acmicpc.net

 

내 답안

while true {
    // 계산의 편리를 위해 sorted로 정렬
    let input = readLine()!.split(separator: " ").map { Int($0)! }.sorted()

    // 0 0 0 이 입력되면 종료
    if input == [0, 0, 0] { break }

    // input의 last(정렬했기 때문에 가장 큰 값)가 나머지의 합보다 같거나 크다면 Invalid 출력
    if input.last! >= input.reduce(0, +) - input.last! {
        print("Invalid")
    } else {
        // Invalid가 아니라면 input을 Set으로 중복제거한 값의 개수로 Switch문을 통해 분기
        switch Set(input).count {
        // 값이 1개라면 3개가 같은 값이기에 Equilateral 출력
        case 1: print("Equilateral")
        // 값이 2개라면 2개가 같은 값이기에 Isosceles 출력
        case 2: print("Isosceles")
        // 값이 3개라면 다 다른 값이기에 Scalene 출력
        case 3: print("Scalene")
        default: break
        }
    }
}