Skip to content

Commit 08c7040

Browse files
authored
Merge pull request #1934 from wozlsla/main
[wozlsla] WEEK 11 solutions
2 parents 7911b1e + ffbd62d commit 08c7040

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

missing-number/wozlsla.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from typing import List
2+
3+
4+
"""
5+
distinct
6+
두 배열의 차이 -> 순회를 어떻게? -> 리스트 > 해시테이블 (t)
7+
8+
# Sol 1
9+
10+
시간 복잡도: O(n)
11+
- 1. Set 생성: O(n)
12+
- 2. 반복문 + 해시셋 검사: O(n) + O(1)
13+
14+
공간 복잡도: O(n)
15+
16+
# Sol 2
17+
18+
시간 복잡도: O(n)
19+
- 1. 0부터 n까지의 전체 합 계산: O(1)
20+
- 2. nums 배열 요소들의 합 계산: O(n)
21+
- 3. 차이가 사라진 숫자: O(1)
22+
23+
공간 복잡도: O(1)
24+
25+
"""
26+
27+
28+
# Sol 1)
29+
class Solution:
30+
def missingNumber(self, nums: List[int]) -> int:
31+
32+
table = set(nums)
33+
34+
for i in range(0, len(nums) + 1):
35+
if i not in table:
36+
return i
37+
else:
38+
continue
39+
40+
41+
# Sol 2)
42+
class Solution:
43+
def missingNumber(self, nums: List[int]) -> int:
44+
n = len(nums)
45+
46+
# 0부터 n까지의 전체 합 (가우스 공식)
47+
sum_total = n * (n + 1) // 2
48+
49+
# nums 배열 요소들의 합
50+
sum_nums = sum(nums)
51+
52+
return sum_total - sum_nums

0 commit comments

Comments
 (0)