Skip to content

Commit 920f503

Browse files
committed
add solution : 347. Top K Frequent Elements
1 parent 763bf36 commit 920f503

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* ์ ‘๊ทผ ๋ฐฉ๋ฒ• :
3+
* - ์ˆซ์ž ๋ฐ”์—ด์„ ์ „์ฒด ์ˆœํšŒํ•˜๋ฉด์„œ ๋นˆ๋„์ˆ˜๋ฅผ ๊ฐ์ฒด์— ์ €์žฅ
4+
* - ๊ฐ์ฒด ๊ฐ’์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋’ค, ์›ํ•˜๋Š” ํ•ญ๋ชฉ๋งŒํผ ์ž๋ฅด๊ณ  ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค ๋ฆฌํ„ดํ•˜๊ธฐ
5+
*
6+
* ์‹œ๊ฐ„๋ณต์žก๋„ : O(nlogn)
7+
* - ์ˆซ์ž ๋ฐฐ์—ด ๊ธธ์ด = n , ๊ฐ€์ ธ์˜ฌ ํ•ญ๋ชฉ ๊ฐœ์ˆ˜ = k
8+
* - ๊ฐ์ฒด์— ์ˆซ์ž์™€ ๋นˆ๋„์ˆ˜ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ชจ๋“  ์ˆซ์ž ์ˆœํšŒ : O(n)
9+
* - ๊ฐ์ฒด ํ‚ค๊ฐ’์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ : O(nlogn)
10+
* - slice, map : O(k)
11+
*
12+
* ๊ณต๊ฐ„๋ณต์žก๋„ :
13+
* - ์ˆซ์ž ๋ฐฐ์—ด์˜ ๊ธธ์ด๋งŒํผ ๊ฐ์ฒด์— ์ €์žฅํ•˜๋‹ˆ๊นŒ O(n)
14+
*/
15+
16+
/**
17+
* @param {number[]} nums
18+
* @param {number} k
19+
* @return {number[]}
20+
*/
21+
22+
var topKFrequent = function (nums, k) {
23+
const obj = {};
24+
25+
for (const num of nums) {
26+
obj[num] = (obj[num] ?? 0) + 1;
27+
}
28+
29+
return Object.entries(obj)
30+
.sort((a, b) => b[1] - a[1])
31+
.slice(0, k)
32+
.map((item) => Number(item[0]));
33+
};

0 commit comments

Comments
ย (0)