Skip to content

Commit 1e7753e

Browse files
Add contains-duplicate
1 parent 53ce7c7 commit 1e7753e

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
contains-duplicate
3+
์š”๊ตฌ์‚ฌํ•ญ: ์ฃผ์–ด์ง„ ์ž…๋ ฅ์—์„œ ์ค‘๋ณต๋œ ์›์†Œ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ฐธ/๊ฑฐ์ง“์œผ๋กœ ๋ฐ˜ํ™˜.
4+
์ ‘๊ทผ 1: ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์€ ๋‹ค๋ฅธ vector input_list๋ฅผ ๋‘๊ณ , ์ž…๋ ฅ ๋ฐ˜๋ณต๋งˆ๋‹ค ์ „์ฒด ์Šค์บ”ํ•ด์„œ ์ค‘๋ณต ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
5+
input_list์˜ ์Šค์บ” ๋น„์šฉ O(N)์„ ๋ชจ๋“  ์ž…๋ ฅ์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•˜๋ฏ€๋กœ ์ด ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^2)์ž…๋‹ˆ๋‹ค.
6+
๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” ์ž…๋ ฅ๊ณผ ๊ฐ™์œผ๋ฏ€๋กœ O(N)์ž…๋‹ˆ๋‹ค.
7+
์ ‘๊ทผ 2: ์›์†Œ์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ฒดํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ set์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
8+
set์€ ์ค‘๋ณต ์›์†Œ๋ฅผ ๊ฒ€์ถœํ•˜๋Š”๋ฐ ํšจ๊ณผ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ๋‚ด๋ถ€ ๊ตฌํ˜„์— ๋”ฐ๋ผ ๋น„์šฉ๊ณผ ํŠน์„ฑ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
9+
- C++์—์„œ ordered_{set, map}์€ ์ •๋ ฌ์„ ์œ ์ง€ํ•˜๋Š” search tree๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ฟผ๋ฆฌ์™€ ์‚ฝ์ž…, ์‚ญ์ œ ๋น„์šฉ์ด ํ‰๊ท  O(log(N))์ž…๋‹ˆ๋‹ค.
10+
search tree์˜ ๊ตฌํ˜„์— ๋”ฐ๋ผ ์ตœ์•…์˜ ๊ฒฝ์šฐ ์ฟผ๋ฆฌ ๋น„์šฉ์ด O(N)๊นŒ์ง€ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
11+
- C++์—์„œ unordered_{set, map}์€ ํ•ด์‹œ ๋ฐ ๋ฒ„ํ‚ท ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, ํ‰๊ท ์ ์ธ ์ฟผ๋ฆฌ, ์‚ฝ์ž…, ์‚ญ์ œ ๋น„์šฉ์€ O(1)์ž…๋‹ˆ๋‹ค.
12+
์šฐ๋ฆฌ์˜ ์š”๊ตฌ์‚ฌํ•ญ์€ ์ž…๋ ฅ์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ unordered_set์œผ๋กœ ์ค‘๋ณต ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋น„์šฉ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.
13+
์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ์ž…๋ ฅ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. N๊ฐœ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•ด ๊ฐ๊ฐ ์ฟผ๋ฆฌ์™€ ์ž…๋ ฅ์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ, ์ด ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N), ๊ณต๊ฐ„ ๋ณต์žก๋„๋„ ์ž…๋ ฅ๋งŒํผ์ธ O(N)์ž…๋‹ˆ๋‹ค.
14+
*/
15+
16+
#include <vector>
17+
#include <unordered_set>
18+
19+
class Solution {
20+
public:
21+
bool containsDuplicate(std::vector<int>& nums) {
22+
std::unordered_set<int> s;
23+
24+
for (auto it = nums.begin(); it != nums.end(); it++) {
25+
int x = *it;
26+
if (s.find(x) != s.end())
27+
return true;
28+
else
29+
s.insert(x);
30+
}
31+
return false;
32+
}
33+
};

0 commit comments

Comments
ย (0)