Skip to content

Commit 1d00102

Browse files
committed
feat: o(n)문제풀이 방식 적용
1 parent d616ef2 commit 1d00102

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

top-k-frequent-elements/hwanmini.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 시간복잡도: O(n log n)
1+
// 시간복잡도: O(n)
22
// 공간복잡도: O(n)
33

44
/**
@@ -13,10 +13,18 @@ var topKFrequent = function(nums, k) {
1313
map.set(nums[i], (map.get(nums[i]) || 0) + 1);
1414
}
1515

16-
const frequencyArr = [...map]
17-
const sortedArr = frequencyArr.toSorted((a,b) => b[1] - a[1])
16+
const buckets = Array.from({length: nums.length + 1}, () => [])
1817

19-
return sortedArr.slice(0,k).map(([key,value]) => key);
18+
for (const [num, frequency] of map.entries()) {
19+
buckets[frequency].push(num);
20+
}
21+
22+
const result = [];
23+
for (let i = buckets.length - 1; i >= 0 && result.length < k; i--) {
24+
result.push(...buckets[i]);
25+
}
26+
27+
return result.slice(0, k);
2028

2129
};
2230

0 commit comments

Comments
 (0)