Skip to content

Commit 620b3dd

Browse files
committed
1주차 solution
1 parent 0585d30 commit 620b3dd

File tree

5 files changed

+57
-1
lines changed

5 files changed

+57
-1
lines changed

contains-duplicate/Donghae0230.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 시간 복잡도
2+
# 입력 list를 set으로 변환 -> 최대 O(n)
3+
# 공간 복잡도
4+
# 입력 list를 set으로 변환 -> 최대 O(n)
15
class Solution:
26
def containsDuplicate(self, nums: List[int]) -> bool:
37
set_nums = set(nums)

house-robber/Donghae0230.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# 시간 복잡도
2+
# nums의 길이에 여러 분기로 나뉨 -> O(2^n) -> Time Limit Exceeded로 실패
3+
# 공간 복잡도
4+
# 재귀 깊이에 따라 늘어남 -> 최대 O(n)
5+
6+
class Solution:
7+
def temp(self, n, nums, val, lst):
8+
if n+2 >= len(nums):
9+
lst.append(val)
10+
lst = max(lst)
11+
return lst
12+
for i in range(n+2, len(nums)):
13+
self.temp(i, nums, val+nums[i], lst)
14+
lst = max(lst)
15+
return lst
16+
17+
def rob(self, nums: List[int]) -> int:
18+
if len(nums) > 1:
19+
start_0 = self.temp(0, nums, nums[0], [])
20+
start_1 = self.temp(1, nums, nums[1], [])
21+
return max(start_0, start_1)
22+
else:
23+
return nums[0]
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# 시간 복잡도
2+
# 입력 list를 정렬해서 사용 -> 최대 O(n log n)
3+
# 공간 복잡도
4+
# 입력 list를 set으로 변환 -> 최대 O(n)
5+
6+
class Solution:
7+
def longestConsecutive(self, nums: List[int]) -> int:
8+
if len(nums) == 0:
9+
return 0
10+
sorted_nums = list(sorted(set(nums)))
11+
temp = 1
12+
result = 0
13+
# print(sorted_nums)
14+
for i in range(0, len(sorted_nums) - 1):
15+
if sorted_nums[i] + 1 == sorted_nums[i+1]:
16+
temp += 1
17+
else:
18+
result = max(result, temp)
19+
temp = 1
20+
result = max(result, temp)
21+
return result

top-k-frequent-elements/Donghae0230.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 시간 복잡도
2+
# 입력 list를 정렬해서 사용 -> 최대 O(n log n)
3+
# 공간 복잡도
4+
# 입력 list를 set으로 변환 -> 최대 O(n)
15
class Solution:
26
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
37
nums.sort()
@@ -19,4 +23,4 @@ def topKFrequent(self, nums: List[int], k: int) -> List[int]:
1923
result = []
2024
for i in sorted_items_desc[:k]:
2125
result.append(i[0])
22-
return result
26+
return result

two-sum/Donghae0230.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 시간 복잡도
2+
# 입력 list를 이중 for문에서 사용 -> O(n^2)
3+
# 공간 복잡도
4+
# 크기가 고정된 리스트 사용 -> O(1)
15
class Solution:
26
def twoSum(self, nums: List[int], target: int) -> List[int]:
37
for i in range(0, len(nums)):

0 commit comments

Comments
 (0)