File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * 0๋ถํฐ n๊น์ง์ ์ซ์ ์ค ๋ฐฐ์ด์์ ๋๋ฝ๋ ์ซ์๋ฅผ ์ฐพ๋ ํจ์
3
+ * @param {number[] } nums - 0๋ถํฐ n๊น์ง์ ์ซ์๊ฐ ํฌํจ๋ ๋ฐฐ์ด (์์๋ ๋ฌด์์์ด๋ฉฐ ์ผ๋ถ ์ซ์๊ฐ ๋๋ฝ๋ ์ ์์)
4
+ * @returns {number } - ๋ฐฐ์ด์์ ๋๋ฝ๋ ์ซ์
5
+ *
6
+ * ์๊ฐ ๋ณต์ก๋: O(n)
7
+ * - Set์ Hash Table๋ก ๊ตฌํ๋์ด has ๋ฉ์๋๊ฐ Array.includes ๋ฉ์๋๋ณด๋ค ์ ๋ฆฌ
8
+ * - Set์ ์์ฑํ๋ ๋ฐ O(n) ์๊ฐ์ด ์์
9
+ * - ๋ฐฐ์ด ๊ธธ์ด๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์ Set์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ฐ O(1) * n = O(n)
10
+ * - ๊ฒฐ๊ณผ์ ์ผ๋ก O(n) + O(n) = O(n)
11
+ *
12
+ * ๊ณต๊ฐ ๋ณต์ก๋: O(n)
13
+ * - Set ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ์
๋ ฅ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ ์ฅํ๋ฏ๋ก O(n)์ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ
14
+ */
15
+ function missingNumber ( nums : number [ ] ) : number {
16
+ // ๋ฐฐ์ด์ ์ซ์๋ฅผ ๋ชจ๋ Set์ ์ถ๊ฐํ์ฌ ์ค๋ณต ์ ๊ฑฐ
17
+ const distinctSet = new Set ( [ ...nums ] ) ;
18
+
19
+ // 0๋ถํฐ n๊น์ง์ ์ซ์ ์ค์์ ๋๋ฝ๋ ์ซ์๋ฅผ ํ์
20
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
21
+ // Set์ i๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด i๊ฐ ๋๋ฝ๋ ์ซ์
22
+ if ( ! distinctSet . has ( i ) ) {
23
+ return i ;
24
+ }
25
+ }
26
+
27
+ // ๋ชจ๋ ์ซ์๊ฐ Set์ ์กด์ฌํ๋ฉด n์ด ๋๋ฝ๋ ์ซ์
28
+ return nums . length ;
29
+ }
You canโt perform that action at this time.
0 commit comments