관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 삼각형의 완성조건 (1) (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 삼각형의 완성조건 (1) (Kotlin)

참깨빵위에참깨빵_ 2022. 12. 30. 16:39
728x90
반응형
선분 3개로 삼각형을 만들려면 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 한다.
삼각형의 세 변의 길이가 담긴 배열 sides가 매개변수로 주어질 때, 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 리턴하는 solution()을 완성하라

 

 

내림차순 정렬해서 2번, 3번 값 더한 다음 1번 값보다 작은지 판단해서 숫자를 리턴시키면 된다.

 

class Solution {
    fun solution(sides: IntArray): Int {
        val list = sides.toList().sortedDescending()
        return if (list[1] + list[2] > list[0]) {
            1
        } else {
            2
        }
    }
}

 

다른 사람의 풀이를 참고하니 굳이 내림차순 정렬하지 않아도 해결할 수 있는 방법이 있었다.

 

class Solution {
    fun solution(sides: IntArray) = sides.sorted().let { (x, y, z) -> if (x + y > z) 1 else 2 }
}

 

코틀린이 지원하는 기능 중 범위 함수라는 것이 있다. 그 중 let을 써서 오름차순 정렬된 리스트(1, 2, 3) 안의 1번, 2번 값을 더해서 3번보다 크고 작은 경우의 값을 각각 리턴시키면 더 간결하게 코드를 작성할 수 있다.

반응형
Comments