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