File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 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+ } ;
You canโt perform that action at this time.
0 commit comments