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