From 38c0fb98867ac46bfa08b0033e0c4e4dd88bfa1e Mon Sep 17 00:00:00 2001 From: Yuseok Jo Date: Thu, 3 Sep 2026 22:52:33 +0900 Subject: [PATCH 1/6] missing number solution --- missing-number/yuseok89.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 missing-number/yuseok89.py diff --git a/missing-number/yuseok89.py b/missing-number/yuseok89.py new file mode 100644 index 0000000000..723c6dde27 --- /dev/null +++ b/missing-number/yuseok89.py @@ -0,0 +1,12 @@ +# TC: O(N) +# SC: O(1) +class Solution: + def missingNumber(self, nums: List[int]) -> int: + n = len(nums) + total = n * (n + 1) // 2 + + for num in nums: + total -= num + + return total + From d35f81d85bc087a2d03b482d78a4ec436ea753b1 Mon Sep 17 00:00:00 2001 From: Yuseok Jo Date: Thu, 3 Sep 2026 23:08:34 +0900 Subject: [PATCH 2/6] reorder list solution --- reorder-list/yuseok89.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 reorder-list/yuseok89.py diff --git a/reorder-list/yuseok89.py b/reorder-list/yuseok89.py new file mode 100644 index 0000000000..9a34b9ebf8 --- /dev/null +++ b/reorder-list/yuseok89.py @@ -0,0 +1,37 @@ +# TC: O(N) +# SC: O(1) +# Definition for singly-linked list. +# class ListNode: +# def __init__(self, val=0, next=None): +# self.val = val +# self.next = next +class Solution: + def reorderList(self, head: Optional[ListNode]) -> None: + """ + Do not return anything, modify head in-place instead. + """ + + if not head or not head.next: + return + + def rec(right: Optional[ListNode]) -> Optional[ListNode]: + if not right: + return head + + left = rec(right.next) + + if not left: + return None + + if left == right or left.next == right: + right.next = None + return None + + nxt_left = left.next + left.next = right + right.next = nxt_left + + return nxt_left + + rec(head) + From ae66d6839fe473ffa2b79d767e7e56e2a74d6137 Mon Sep 17 00:00:00 2001 From: Yuseok Jo Date: Thu, 3 Sep 2026 23:10:43 +0900 Subject: [PATCH 3/6] merge intervals solution --- merge-intervals/yuseok89.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 merge-intervals/yuseok89.py diff --git a/merge-intervals/yuseok89.py b/merge-intervals/yuseok89.py new file mode 100644 index 0000000000..8bf9d37398 --- /dev/null +++ b/merge-intervals/yuseok89.py @@ -0,0 +1,25 @@ +# TC: O(NlogN) +# SC: O(N) +class Solution: + def merge(self, intervals: List[List[int]]) -> List[List[int]]: + + ans = list() + + intervals.sort(key=lambda x:x[0]) + + ans.append([intervals[0][0]]) + + end = intervals[0][1] + + for idx in range(1, len(intervals)): + if intervals[idx][0] <= end: + end = max(end, intervals[idx][1]) + else: + ans[-1].append(end) + ans.append([intervals[idx][0]]) + end = intervals[idx][1] + + ans[-1].append(end) + + return ans + From 54953604fc69c877ea8ee4ab00e27c301e97b7eb Mon Sep 17 00:00:00 2001 From: Yuseok Jo Date: Thu, 3 Sep 2026 23:11:55 +0900 Subject: [PATCH 4/6] binary tree maximum path sum solution --- binary-tree-maximum-path-sum/yuseok89.py | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 binary-tree-maximum-path-sum/yuseok89.py diff --git a/binary-tree-maximum-path-sum/yuseok89.py b/binary-tree-maximum-path-sum/yuseok89.py new file mode 100644 index 0000000000..45491b7b57 --- /dev/null +++ b/binary-tree-maximum-path-sum/yuseok89.py @@ -0,0 +1,30 @@ +# TC: O(N) +# SC: O(1) +# Definition for a binary tree node. +# class TreeNode: +# def __init__(self, val=0, left=None, right=None): +# self.val = val +# self.left = left +# self.right = right +class Solution: + def maxPathSum(self, root: Optional[TreeNode]) -> int: + + ans = float('-inf') + + def get_max(cur: Optional[TreeNode]) -> int: + nonlocal ans + + if cur is None: + return 0 + + left_max = get_max(cur.left) + right_max = get_max(cur.right) + + ans = max(ans, cur.val, cur.val + left_max, cur.val + right_max, cur.val +left_max + right_max) + + return max(cur.val, cur.val + max(left_max, right_max)) + + get_max(root) + + return ans + From e2384666d02d56277cfb4f1260c654fad71b62b6 Mon Sep 17 00:00:00 2001 From: Yuseok Jo Date: Sat, 5 Sep 2026 01:55:14 +0900 Subject: [PATCH 5/6] =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reorder-list/yuseok89.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reorder-list/yuseok89.py b/reorder-list/yuseok89.py index 9a34b9ebf8..eea0f18281 100644 --- a/reorder-list/yuseok89.py +++ b/reorder-list/yuseok89.py @@ -1,5 +1,5 @@ # TC: O(N) -# SC: O(1) +# SC: O(N) # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): From 4425b8cff0975a1cd03fbe39ad9dbff55b1b7ebb Mon Sep 17 00:00:00 2001 From: Yuseok Jo Date: Sat, 5 Sep 2026 01:58:12 +0900 Subject: [PATCH 6/6] =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- binary-tree-maximum-path-sum/yuseok89.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/binary-tree-maximum-path-sum/yuseok89.py b/binary-tree-maximum-path-sum/yuseok89.py index 45491b7b57..6bbf164ae8 100644 --- a/binary-tree-maximum-path-sum/yuseok89.py +++ b/binary-tree-maximum-path-sum/yuseok89.py @@ -1,5 +1,5 @@ # TC: O(N) -# SC: O(1) +# SC: O(H) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None):