관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 가장 큰 수 찾기 (Kotlin) 본문

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

[Algorithm] 프로그래머스 - 가장 큰 수 찾기 (Kotlin)

참깨빵위에참깨빵_ 2023. 1. 8. 23:49
728x90
반응형
정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 리턴하는 solution()을 완성하라

 

 

주먹구구식으로 푼 코드는 아래와 같다.

 

class Solution {
    fun solution(array: IntArray): IntArray {
        val list = array.toList().sortedDescending()
        val bigNum = list[0]
        val index = array.indexOf(bigNum)

        return intArrayOf(bigNum, index)
    }
}

 

이걸 줄이면 아래와 같다.

 

class Solution {
    fun solution(array: IntArray): IntArray = array.maxOrNull().let {
        intArrayOf(it ?: 0, array.indexOf(it ?: 0))
    }
}

 

maxOrNull()은 아래와 같은 함수다.

 

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/max-or-null.html

 

maxOrNull - Kotlin Programming Language

 

kotlinlang.org

가장 큰 요소를 반환하거나 요소가 없으면 null을 리턴한다. 요소 중 하나라도 NaN이면 NaN을 리턴한다

 

그래서 intArrayOf() 안에 엘비스 연산자로 null인 경우를 처리하는 것이다.

뒤의 indexOf()는 요소의 첫 번째 인덱스를 반환하거나 배열에 요소가 포함돼 있지 않으면 -1을 리턴하는 함수다.

반응형
Comments