Skip to content
Algorithm.js
📚 단일 패턴

347. Top K Frequent Elements

MinHeap을 사용하여 배열에서 가장 빈번하게 나타나는 상위 K개의 요소를 찾기

Oct 1, 2025 — heap

문제 설명

풀이 아이디어

구현

/**
* @param {number[]} nums
* @param {number} k
* @return {number[]}
*/
var topKFrequent = function(nums, k) {
const freqs = new Map();
for (const num of nums) {
freqs.set(num, (freqs.get(num) || 0) + 1)
}
const minHeap = new MinPriorityQueue({ compare: (a,b) => a[1] - b[1] });
for (const freq of freqs.keys()) {
minHeap.enqueue([ freq, freqs.get(freq) ]);
if (minHeap.size() > k) minHeap.dequeue();
}
return minHeap.toArray().map(([ value, freq ]) => value);
};