Daily LeetCode Challenge - 347. Top K Frequent Elements

Min Young Kim·2023년 5월 22일
0

algorithm

목록 보기
152/198

Problem From.

https://leetcode.com/problems/top-k-frequent-elements/

오늘 문제는 배열이 주어졌을때, 그 배열에서 많이 나온 숫자 순으로 나열하여 다시 반환하는 문제였다.

먼저 배열을 한번 순회하면서 숫자와 나온 횟수를 map 에 저장하고, 그 map 의 value 를 내림차순으로 나열한뒤에, 다시 그 순서대로 map 에서 key 를 가지고와서 반환해주면 되었다.

class Solution {
    fun topKFrequent(nums: IntArray, k: Int): IntArray {

        val map = HashMap<Int, Int>()

        nums.forEach {
            if(map.containsKey(it)) {
                map[it] = map[it]!! + 1
            }else {
                map[it] = 1
            }
        }

        val modList = map.toList().sortedByDescending { it.second }

        val answer = arrayListOf<Int>()
        for(i in 0 until k) {
            answer.add(modList[i].first)
        }

        return answer.toIntArray()
    }
}
profile
길을 찾는 개발자

0개의 댓글