-
-
Notifications
You must be signed in to change notification settings - Fork 245
[croucs] WEEK 1 #654
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[croucs] WEEK 1 #654
Changes from 4 commits
29a569b
fbe1ac8
9eda183
a21bc67
499d34a
fb3980d
188db98
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Big-O 예상 : O(n*k) | ||
class Solution: | ||
def containsDuplicate(self, nums: List[int]) -> bool: | ||
num_dict = {} | ||
for num in nums: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 입력받은 List는 정렬되지 않은 상태이기 때문에 중복된 요소간의 List내 위치가 많이 멀 경우 시간복잡도가 안좋게 잡힐 가능성이 커서 정렬한 상태에서 비교하는건 어떨까요? |
||
if num in num_dict: | ||
return True | ||
else: | ||
num_dict[num] = 1 | ||
return False | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Big-O 예상 : O(n) | ||
class Solution: | ||
def rob(self, nums: List[int]) -> int: | ||
a = [0] * len(nums) | ||
|
||
if len(nums) == 1: | ||
return nums[0] | ||
elif len(nums) == 2: | ||
return max(nums[0], nums[1]) | ||
|
||
a[0] = nums[0] | ||
a[1] = nums[1] | ||
a[2] = max(a[0] + nums[2], a[1]) | ||
|
||
for i in range(3, len(nums)): | ||
a[i] = max(a[i-3], a[i-2]) + nums[i] | ||
|
||
return max(a) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Big-O 예상 : O(nlog(n)) | ||
class Solution: | ||
def longestConsecutive(self, nums: List[int]) -> int: | ||
nums = sorted(list(set(nums))) | ||
if len(nums) == 0: | ||
return 0 | ||
elif len(nums) == 1: | ||
return 1 | ||
Comment on lines
+5
to
+8
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (사소) nums 길이가 1이하면 sorting하기 전에도 결과를 반환할 수 있어서 가지치기 느낌으로 longestConsecutive 내 최상단에 두면 더 좋아보입니다. |
||
cur_long = 1 | ||
longest = 1 | ||
for i, num in enumerate(nums): | ||
if i == 0: | ||
continue | ||
else: | ||
if nums[i-1] + 1 == nums[i]: | ||
cur_long += 1 | ||
if longest < cur_long: | ||
longest = cur_long | ||
else: | ||
cur_long = 1 | ||
return longest | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Big-O 예상 : O(nlog(n)) | ||
import heapq | ||
class Solution: | ||
def topKFrequent(self, nums: List[int], k: int) -> List[int]: | ||
|
||
num_dict = {} | ||
for num in nums: | ||
num_dict[num] = num_dict.get(num, 0) + 1 | ||
heap = [] | ||
for k_, v in num_dict.items(): | ||
heapq.heappush(heap, [-v, k_]) | ||
ans = [] | ||
for i in range(k): | ||
ans.append(heapq.heappop(heap)[1]) | ||
return ans | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Big-O 예상 : O(n) | ||
class Solution: | ||
def isPalindrome(self, s: str) -> bool: | ||
s = "".join(s.lower().split(" ")) | ||
new_s = "" | ||
for item in s: | ||
if (ord("a") <= ord(item) <= ord("z")) or (ord("0") <= ord(item) <= ord("9")): | ||
new_s += item | ||
output = True | ||
for i in range(len(new_s) // 2): | ||
if new_s[i] != new_s[-i-1]: | ||
output = False | ||
break | ||
heypaprika marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
return output | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
안녕하세요☺️
일반적으로 Big O 분석을 한다고 하면 해당 풀이의 시간 복잡도와 공간 복잡도를 분석하는 것을 뜻합니다
따라서 해당 Big O 표기가 어느 부분에 관한 분석인지 적어주시는 것이 좋을 것 같아요
또한 Big O 표기에 n, k 이렇게 두 개의 변수가 쓰이고 있는데, 각각의 변수가 어떤 걸 의미하고 있는지 적어주시면 좋을 것 같습니다 ㅎㅎ
위키에 모범 답안제출 사례들을 참고하시길 추천 드립니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
네~ 피드백 감사드립니다!!