알고리즘 문제 풀이/프로그래머스
[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을 리턴하는 함수다.
반응형