TIL #16

loci·2024년 5월 16일
0

TIL

목록 보기
16/111

명예의 전당(1)

k번째 까지 배열에 넣어준뒤 정렬해서 첫번째 수를 answer에 넣어줌

k번째 이후부터는 명예의 전당(arr)에 가장 작은 수보다 큰수라면 값을 바꿔주고 다시 정렬해 첫번째 값을 출력하는 식으로 풀이


나의 풀이

class Solution {
    fun solution(k: Int, score: IntArray): IntArray {
        var answer: IntArray = intArrayOf()
        var arr : IntArray = intArrayOf()
        
        for( i in 0 until score.size){
            if(k < i+1 && score[i] > arr[0]){
                arr[0] = score[i]
            } else if (k >= i+1) {
                arr += score[i]
            }
            
            arr.sort()
            answer += arr.first()
            
        }
        return answer
    }
}

다른사람 풀이

class Solution {
    fun solution(k: Int, score: IntArray): IntArray = score.mapIndexed { index, i ->
        score.copyOfRange(0, index + 1).sortedDescending().run { getOrNull(k - 1) ?: minOf { it } }
    }.toIntArray()
}
profile
편리한 개발자

0개의 댓글