From cc0f81d9ff0444bf4c137d9a2e8e8dc03b86a4a9 Mon Sep 17 00:00:00 2001 From: YOUNGJIN NA <120540450+ppxyn1@users.noreply.github.com> Date: Mon, 9 Feb 2026 00:15:53 +0900 Subject: [PATCH 1/2] [:solved] 2 problems --- binary-tree-level-order-traversal/ppxyn1.py | 30 +++++++++++++++++++++ counting-bits/ppxyn1.py | 13 +++++++++ 2 files changed, 43 insertions(+) create mode 100644 binary-tree-level-order-traversal/ppxyn1.py create mode 100644 counting-bits/ppxyn1.py diff --git a/binary-tree-level-order-traversal/ppxyn1.py b/binary-tree-level-order-traversal/ppxyn1.py new file mode 100644 index 0000000000..ad58fc6175 --- /dev/null +++ b/binary-tree-level-order-traversal/ppxyn1.py @@ -0,0 +1,30 @@ +# 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 + + +# idea: BFS +# Time Complexity: O(n) +from collections import deque +class Solution: + def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: + ans = [] + q = deque([root]) + while q: + level = [] + for i in range(len(q)): + node = q.popleft() + if node: + level.append(node.val) + if node.left: + q.append(node.left) + if node.right: + q.append(node.right) + if level: + ans.append(level) + return ans + + diff --git a/counting-bits/ppxyn1.py b/counting-bits/ppxyn1.py new file mode 100644 index 0000000000..c163c5d001 --- /dev/null +++ b/counting-bits/ppxyn1.py @@ -0,0 +1,13 @@ +# idea : - +# Time Complexity : O(n log n) since counting? +class Solution: + def countBits(self, n: int) -> List[int]: + ans = [] + for i in range(n + 1): + ans.append(bin(i)[2:].count("1")) + return ans + +# TODO: O(n)? + + + From 5a36e7c4a914072b944dff6afe1b480498406a6c Mon Sep 17 00:00:00 2001 From: YOUNGJIN NA <120540450+ppxyn1@users.noreply.github.com> Date: Fri, 13 Feb 2026 10:29:11 +0900 Subject: [PATCH 2/2] [:solved] #265 --- house-robber-ii/ppxyn1.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 house-robber-ii/ppxyn1.py diff --git a/house-robber-ii/ppxyn1.py b/house-robber-ii/ppxyn1.py new file mode 100644 index 0000000000..4873d10135 --- /dev/null +++ b/house-robber-ii/ppxyn1.py @@ -0,0 +1,27 @@ +# DP +# Time Complexity : O(n) +class Solution: + def rob(self, nums: List[int]) -> int: + if not nums: + return 0 + if len(nums) == 1: + return nums[0] + + # case 1: from start+1 to end + p1, p2 = 0, 0 + for n in nums[1:]: + val = max(p1 + n, p2) + p1 = p2 + p2 = val + case1 = p2 + + # case 2: from start to end-1 + p1, p2 = 0, 0 + for n in nums[:-1]: + val = max(p1 + n, p2) + p1 = p2 + p2 = val + case2 = p2 + + return max(case1, case2) +