Skip to content

Commit 38f0f15

Browse files
committed
add: solve DaleStudy#235 Missing Number with ts
1 parent 97c6d2a commit 38f0f15

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

โ€Žmissing-number/Yjason-K.ts

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

0 commit comments

Comments
ย (0)