Skip to content

Commit dde1e38

Browse files
authored
Merge pull request #327 from kjb512/main
[kayden] Week 01 Solutions
2 parents 60cfa5a + 0faaeae commit dde1e38

File tree

5 files changed

+71
-0
lines changed

5 files changed

+71
-0
lines changed

contains-duplicate/kayden.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# 시간복잡도: O(N)
2+
# 공간복잡도: O(N)
3+
class Solution:
4+
def containsDuplicate(self, nums: List[int]) -> bool:
5+
return len(set(nums)) != len(nums)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# 시간복잡도: O(N)
2+
# 공간복잡도: O(1)
3+
class TreeNode:
4+
def __init__(self, val=0, left=None, right=None):
5+
self.val = val
6+
self.left = left
7+
self.right = right
8+
9+
10+
class Solution:
11+
12+
def kthSmallest(self, root: Optional[TreeNode], k: int) -> int:
13+
self.result = 0
14+
self.count = 0
15+
16+
def dfs(node):
17+
if node is None:
18+
return
19+
20+
dfs(node.left)
21+
22+
self.count += 1
23+
24+
if self.count == k:
25+
self.result = node.val
26+
return
27+
28+
dfs(node.right)
29+
30+
dfs(root)
31+
32+
return self.result

number-of-1-bits/kayden.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# 시간복잡도: O(log N)
2+
# 공간복잡도: O(log N)
3+
class Solution:
4+
def hammingWeight(self, n: int) -> int:
5+
return bin(n).count("1")

palindromic-substrings/kayden.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# 시간복잡도: O(N^2)
2+
# 공간복잡도: O(N^2)
3+
class Solution:
4+
def countSubstrings(self, s: str) -> int:
5+
n = len(s)
6+
count = n
7+
isPalindrome = [[False for _ in range(n)] for _ in range(n)]
8+
9+
for i in range(n):
10+
isPalindrome[i][i] = True
11+
if i < n-1 and s[i] == s[i+1]:
12+
isPalindrome[i][i+1] = True
13+
count += 1
14+
15+
for length in range(3, n + 1):
16+
for i in range(n - length + 1):
17+
j = i + length - 1
18+
if isPalindrome[i+1][j-1] and s[i] == s[j]:
19+
isPalindrome[i][j] = True
20+
count += 1
21+
22+
return count

top-k-frequent-elements/kayden.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# 시간복잡도: O(Nlog N)
2+
# 공간복잡도: O(N)
3+
from collections import Counter
4+
5+
class Solution:
6+
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
7+
return [num for num, count in Counter(nums).most_common(k)]

0 commit comments

Comments
 (0)