File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change 1+ /*
2+ * ์กฐ๊ฑด
3+ * [0, n] ์ค์ ์๋ ๊ฐ์ ๋ฆฌํด, n == nums.length
4+ * ๋ชจ๋ ๊ฐ์ unique
5+
6+ * ์์ด๋์ด
7+ * => nums.length๋ ์ค์ ๋ฐฐ์ด index๋ณด๋ค 1์ด ๋ ํฌ๊ธฐ ๋๋ฌธ์ ํญ์ ์๋ ๊ฐ์ด 1๊ฐ ์กด์ฌํจ
8+ * 0๋ถํฐ n๊น์ง์ ๋ชจ๋ ๊ฐ์ set์ ์ ์ฅํด๋๋ค.
9+ * set ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋
10+ * 1. nums์ ๋ค์ด์ค๋ ๊ฐ์ด ์ค๋ณต๊ฐ์ด ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ
11+ * 2. ๊ฐ์ ๋์์ ๋ฐฐ์ด์์ ํ๊ฒ ๋๋ฉด
12+ * ๊ฐ ์ธ๋ฑ์ค๋ฅผ 1๋ก ๋๊ณ ๊ฐ์ด ์์๋๋ง๋ค 0์ผ๋ก ๋ณ๊ฒฝ, 1์ด ์๋ index๋ฅผ ์ฐพ์์ผ๋ก ํ ์ ์์
13+ * => ์ด ๊ฒฝ์ฐ, ๋จ์ ๊ฐ์ ์ฐพ์ ๋ ๋ฐฐ์ด์ ํ๋ฒ ๋ค ๋์์ผ ํด์ ์๊ฐ๋ณต์ก๋๊ฐ O(n) ๋ ์์๋จ.
14+ * nums ๋ฐฐ์ด์ ๋๋ฉฐ ๊ฐ์ด ์์๋ ๋ง๋ค set์์ ๊ฐ์ ์ญ์ ํ๋ค.
15+ * set์์ ๋จ์ ๊ฐ์ ์ฐพ์ ๋ฆฌํดํด์ค๋ค.
16+ *
17+ */
18+ function missingNumber ( nums : number [ ] ) : number {
19+ // TC: O(n)
20+ // SC: O(n)
21+ const numSet : Set < number > = new Set (
22+ Array ( nums . length + 1 )
23+ . fill ( 0 )
24+ . map ( ( v , i ) => i )
25+ ) ;
26+
27+ // TC: O(n)
28+ nums . forEach ( ( n ) => {
29+ numSet . delete ( n ) ;
30+ } ) ;
31+
32+ // TC: O(1)
33+ // SC: O(1)
34+ const [ lastNum ] = numSet . values ( ) ;
35+ return lastNum ;
36+ }
37+
38+ // TC: O(n)
39+ // SC: O(n)
You canโt perform that action at this time.
0 commit comments