Skip to content

Commit 4579911

Browse files
committed
add: solution01
1 parent 8901b1d commit 4579911

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package contains_duplicate
2+
3+
import "sort"
4+
5+
/*
6+
1. ๋ฌธ์ œ
7+
8+
์ฃผ์–ด์ง„ int ๋ฐฐ์—ด nums์— ์ˆซ์ž๊ฐ€ ์ค‘๋ณต๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ•œ ๋ฒˆ์ด๋ผ๋„ ์žˆ์œผ๋ฉด true, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false ๋ฅผ ๋ฆฌํ„ด
9+
10+
2. ํ’€์ด
11+
12+
๊ณ ์œ ๊ฐ’๋งŒ ์ €์žฅํ•˜๋Š” set(go ์—์„œ๋Š” map)์˜ ์„ฑ์งˆ์„ ํ™œ์šฉํ•˜์—ฌ
13+
nums๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ set์— ๊ฐ’์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ์ฒดํฌํ•˜์—ฌ
14+
์ˆซ์ž๊ฐ€ ์ค‘๋ณต๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฒดํฌ
15+
16+
3. ๋ถ„์„
17+
- ์‹œ๊ฐ„ ๋ณต์žก๋„: O(N)
18+
nums ํƒ์ƒ‰: O(N)
19+
๋ฐฐ์—ด nums์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ๋‹จ ํ•œ ๋ฒˆ ์ˆœํšŒ
20+
map ์‚ฝ์ž…, ํƒ์ƒ‰: O(1)
21+
map์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์€ ํ•ด์‹œ ํ…Œ์ด๋ธ”.
22+
O(N)๋ณด๋‹ค ์ž‘์•„ ๋ฌด์‹œ๋จ
23+
- ๊ณต๊ฐ„ ๋ณต์žก๋„: O(N)
24+
์ตœ์•…์˜ ๊ฒฝ์šฐ๋ผ๋„ ์‚ฌ์šฉ๊ณต๊ฐ„์€ nums ์˜ ํฌ๊ธฐ๋งŒํผ + nums์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ํฌํ•จํ•œ map
25+
*/
26+
func containsDuplicate(nums []int) bool {
27+
seen := map[int]int{}
28+
29+
for _, n := range nums {
30+
if _, ok := seen[n]; ok {
31+
return true
32+
}
33+
34+
seen[n] = 1
35+
}
36+
37+
return false
38+
}
39+
40+
func containsDuplicate_SortedApproach(nums []int) bool {
41+
// early exit for small slices
42+
if len(nums) < 2 {
43+
return false
44+
}
45+
46+
// sort in ascending order and check adjacent elements
47+
sort.Ints(nums)
48+
for i := 1; i < len(nums); i++ {
49+
if nums[i] == nums[i-1] {
50+
return true
51+
}
52+
}
53+
54+
return false
55+
}

0 commit comments

Comments
ย (0)