diff --git a/house-robber/kayden.py b/house-robber/kayden.py new file mode 100644 index 000000000..97f71ee52 --- /dev/null +++ b/house-robber/kayden.py @@ -0,0 +1,11 @@ +class Solution: + # 시간복잡도: O(N) + # 공간복잡도: O(1) + def rob(self, nums: List[int]) -> int: + one, two = 0, 0 + + for num in nums: + temp = max(two+num, one) + two, one = one, temp + + return one diff --git a/lowest-common-ancestor-of-a-binary-search-tree/kayden.py b/lowest-common-ancestor-of-a-binary-search-tree/kayden.py new file mode 100644 index 000000000..fc4d30ca8 --- /dev/null +++ b/lowest-common-ancestor-of-a-binary-search-tree/kayden.py @@ -0,0 +1,20 @@ +class Solution: + # 시간복잡도: O(N) + # 공간복잡도: O(1) + def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': + def find(node): + if not node: + return None + + left = find(node.left) + right = find(node.right) + + if node == p or node == q: + return node + + if left and right: + return node + + return left or right + + return find(root) diff --git a/meeting-rooms/kayden.py b/meeting-rooms/kayden.py new file mode 100644 index 000000000..e2445952f --- /dev/null +++ b/meeting-rooms/kayden.py @@ -0,0 +1,14 @@ +class Solution: + # 시간복잡도: O(NlogN) + # 공간복잡도: O(1) + def can_attend_meetings(self, intervals: List[Interval]) -> bool: + intervals.sort() + + prev = 0 + for start, end in intervals: + if end < prev: + return False + + prev = end + + return True