From 4e17b5fad7d26ba5ec08a211b8e7e221a0b26b6e Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Fri, 25 Sep 2026 20:52:44 +0900 Subject: [PATCH 1/6] counting-bits solution --- counting-bits/parkhojeong.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 counting-bits/parkhojeong.py diff --git a/counting-bits/parkhojeong.py b/counting-bits/parkhojeong.py new file mode 100644 index 0000000000..b200b282bb --- /dev/null +++ b/counting-bits/parkhojeong.py @@ -0,0 +1,15 @@ +class Solution: + def countBits(self, n: int) -> list[int]: + def count(n: int) -> int: + cnt = 0 + while n > 0: + cnt += n % 2 + n = n // 2 + + return cnt + + output = [] + for i in range(n + 1): + output.append(count(i)) + + return output From c3d0211e47216abf5fb0d889310802e7275d70a0 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Fri, 25 Sep 2026 20:52:44 +0900 Subject: [PATCH 2/6] binary-tree-level-order-traversal solution --- .../parkhojeong.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 binary-tree-level-order-traversal/parkhojeong.py diff --git a/binary-tree-level-order-traversal/parkhojeong.py b/binary-tree-level-order-traversal/parkhojeong.py new file mode 100644 index 0000000000..f6888ea4a8 --- /dev/null +++ b/binary-tree-level-order-traversal/parkhojeong.py @@ -0,0 +1,31 @@ +# 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 levelOrder(self, root: TreeNode | None) -> list[list[int]]: + if root is None: + return [] + + deq = deque() + deq.append(root) + + output = [] + while deq: + child = [] + level_nodes = [] + + while deq: + node = deq.popleft() + level_nodes.append(node.val) + if node.left: + child.append(node.left) + if node.right: + child.append(node.right) + + output.append(level_nodes) + deq = deque(child) + + return output From b1d6e144b72027360a5cf6096afde18f60d532c7 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Fri, 25 Sep 2026 20:52:45 +0900 Subject: [PATCH 3/6] house-robber-ii solution --- house-robber-ii/parkhojeong.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 house-robber-ii/parkhojeong.py diff --git a/house-robber-ii/parkhojeong.py b/house-robber-ii/parkhojeong.py new file mode 100644 index 0000000000..087cb8f1c9 --- /dev/null +++ b/house-robber-ii/parkhojeong.py @@ -0,0 +1,17 @@ +class Solution: + def rob(self, nums: list[int]) -> int: + N = len(nums) + if N == 1: + return nums[0] + + prefix_sum = [0] * (N + 1) + prefix_sum[1] = nums[0] + for i in range(2, N): + prefix_sum[i] = max(prefix_sum[i - 2] + nums[i - 1], prefix_sum[i - 1]) + + prefix_sum2 = [0] * (N + 1) + prefix_sum2[2] = nums[1] + for i in range(3, N + 1): + prefix_sum2[i] = max(prefix_sum2[i - 2] + nums[i - 1], prefix_sum2[i - 1]) + + return max(max(prefix_sum), max(prefix_sum2)) From b57c83fa973e4eaeabebcaa2135d8abcd7a51b63 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sat, 26 Sep 2026 23:58:08 +0900 Subject: [PATCH 4/6] counting-bits solution --- counting-bits/parkhojeong.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/counting-bits/parkhojeong.py b/counting-bits/parkhojeong.py index b200b282bb..fde40c0e31 100644 --- a/counting-bits/parkhojeong.py +++ b/counting-bits/parkhojeong.py @@ -1,15 +1,13 @@ class Solution: def countBits(self, n: int) -> list[int]: - def count(n: int) -> int: - cnt = 0 - while n > 0: - cnt += n % 2 - n = n // 2 + if n == 0: + return [0] - return cnt + arr = [0, 1] + def count(n: int) -> int: + return arr[n // 2] + n % 2 - output = [] - for i in range(n + 1): - output.append(count(i)) + for i in range(2, n + 1): + arr.append(count(i)) - return output + return arr From 18c9bdd33506ffff8ad0f80b026eeb8a1fc53d33 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sat, 26 Sep 2026 23:58:09 +0900 Subject: [PATCH 5/6] house-robber-ii solution --- house-robber-ii/parkhojeong.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/house-robber-ii/parkhojeong.py b/house-robber-ii/parkhojeong.py index 087cb8f1c9..931b149ec8 100644 --- a/house-robber-ii/parkhojeong.py +++ b/house-robber-ii/parkhojeong.py @@ -1,17 +1,21 @@ class Solution: def rob(self, nums: list[int]) -> int: - N = len(nums) - if N == 1: + if len(nums) == 1: return nums[0] - prefix_sum = [0] * (N + 1) - prefix_sum[1] = nums[0] - for i in range(2, N): - prefix_sum[i] = max(prefix_sum[i - 2] + nums[i - 1], prefix_sum[i - 1]) + return max( + max(self.rob_linear(nums[:-1])), + max(self.rob_linear(nums[1:] )) + ) + + def rob_linear(self, nums: list[int]): + N = len(nums) + + dp = [0] * (N + 1) + dp[1] = nums[0] + + for i in range(2, N + 1): + dp[i] = max(dp[i - 2] + nums[i - 1], dp[i - 1]) - prefix_sum2 = [0] * (N + 1) - prefix_sum2[2] = nums[1] - for i in range(3, N + 1): - prefix_sum2[i] = max(prefix_sum2[i - 2] + nums[i - 1], prefix_sum2[i - 1]) - return max(max(prefix_sum), max(prefix_sum2)) + return dp From c38eacc3e141228c1c1d5e4488fd8c7ce9eab9a9 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sun, 27 Sep 2026 00:20:19 +0900 Subject: [PATCH 6/6] binary-tree-level-order-traversal solution --- .../parkhojeong.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/binary-tree-level-order-traversal/parkhojeong.py b/binary-tree-level-order-traversal/parkhojeong.py index f6888ea4a8..09657979c1 100644 --- a/binary-tree-level-order-traversal/parkhojeong.py +++ b/binary-tree-level-order-traversal/parkhojeong.py @@ -9,23 +9,20 @@ def levelOrder(self, root: TreeNode | None) -> list[list[int]]: if root is None: return [] - deq = deque() - deq.append(root) + deq = deque([root]) output = [] while deq: - child = [] - level_nodes = [] + nodes = [] - while deq: + for _ in range(len(deq)): node = deq.popleft() - level_nodes.append(node.val) + nodes.append(node.val) if node.left: - child.append(node.left) + deq.append(node.left) if node.right: - child.append(node.right) + deq.append(node.right) - output.append(level_nodes) - deq = deque(child) + output.append(nodes) return output