Skip to content

Commit 6f8cc1a

Browse files
committed
add: Contains Duplicate solution
1 parent 900d301 commit 6f8cc1a

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/**
2+
* Solution 1. Set์„ ํ™œ์šฉํ•˜๊ธฐ 1
3+
*
4+
* [Idea]
5+
* nums์—์„œ ์ค‘๋ณต๋œ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด์„œ nums๋ฅผ ์ด์šฉํ•ด์„œ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ธ Set์„ ์ƒ์„ฑ (numSet)
6+
* ์ค‘๋ณต๋œ ์›์†Œ๊ฐ€ ์žˆ์—ˆ๋‹ค๋ฉด set์„ ์ƒ์„ฑํ•  ๋•Œ ์ œ๊ฑฐ๋˜์–ด nums์˜ ๊ธธ์ด์™€ numSet์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅผ ๊ฒƒ์ด๋ฏ€๋กœ ๋น„๊ตํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜
7+
*
8+
* [Time Complexity]
9+
* O(n) (n: nums์˜ ์›์†Œ ๊ฐœ์ˆ˜)
10+
* nums ๋ฐฐ์—ด์„ ์ด์šฉํ•ด์„œ Set์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์—์„œ O(n)
11+
*
12+
* [Space Complexity]
13+
* O(n) (n: nums์˜ ์›์†Œ ๊ฐœ์ˆ˜)
14+
* numSet์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ตœ๋Œ€ n๋งŒํผ์˜ ๊ณต๊ฐ„์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•จ
15+
*/
16+
function containsDuplicate1(nums: number[]): boolean {
17+
const numsSet = new Set<number>(nums);
18+
return numsSet.size !== nums.length;
19+
}
20+
21+
/**
22+
* Solution 2. Set์„ ํ™œ์šฉํ•˜๊ธฐ 2
23+
*
24+
* [Idea]
25+
* ์ตœ์•…์˜ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ ๋•Œ ์•ฝ๊ฐ„ ๋” ๋น ๋ฅด๊ฒŒ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•
26+
* ์ค‘๋ณต์ธ ์›์†Œ๋ฅผ ๋งˆ์ฃผํ•˜์ž๋งˆ์ž ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„์ฃผ ์กฐ๊ธˆ ๋” ๋น ๋ฆ„
27+
*
28+
* [Time Complexity]
29+
* O(n) (n: nums์˜ ์›์†Œ ๊ฐœ์ˆ˜)
30+
*
31+
* [Space Complexity]
32+
* O(n) (n: nums์˜ ์›์†Œ ๊ฐœ์ˆ˜)
33+
* ์ƒ์„ฑ์ž๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ add๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ์ฐจ์ด ๋•Œ๋ฌธ์ธ์ง€ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” Solution 1๋ณด๋‹ค ์กฐ๊ธˆ ๋งŽ๋‹ค.
34+
*/
35+
function containsDuplicate2(nums: number[]): boolean {
36+
const numSet = new Set<number>();
37+
38+
for (const num of nums) {
39+
if (numSet.has(num)) {
40+
return true;
41+
}
42+
numSet.add(num);
43+
}
44+
45+
return false;
46+
}

0 commit comments

Comments
ย (0)