Skip to content

Commit 88dcf6b

Browse files
committed
2. missing number
1 parent 45d0647 commit 88dcf6b

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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)

0 commit comments

Comments
ย (0)