본문 바로가기
스터디(programmers)

Kotlin] 프로그래머스 lv.1, 명예의 전당 (1)

by 김마리님 2023. 2. 15.

https://school.programmers.co.kr/learn/courses/30/lessons/138477?language=kotlin 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

더보기

??

이 문제가 왜 정답률이 바닥을 치는지 모르겠는데..

 

그냥 수정 가능한 배열(명예의 전당 배열)에다가 일단 값을 때려박아서 내림차순 정렬함 ->

만약 명예의 전당에 올라갈 수 있는 수를 넘으면 배열의 가장 끝 값(가장 작은 수)를 빼버림 ->

남은 배열 중 가장 끝 값(최하위 점수)를 정답 배열에 넣기

 

이러면 끝남. 진짜 이렇게 쉬울 수가 없음 문제가..

굳이 이렇게 priceList(명예의 전당) 배열 만들 필요 없이 그냥 score만 돌아서 k값으로 비교하는 법도 있을거 같은데 굳이..? 굳이? 굳이?

 

class Solution {
    fun solution(k: Int, score: IntArray) : IntArray {
        var answerList = mutableListOf<Int>()
        var priceList = mutableListOf<Int>()

        for(dayScore in score) {
            priceList.add(dayScore)
            priceList.sortDescending()

            if(priceList.size > k) {
                priceList.removeAt(priceList.size - 1)
            }

            answerList.add(priceList.get(priceList.size - 1))
        }

        return answerList.toIntArray()
    }
}
반응형