From ab0403340e398c8afd0d65daf5f47645dfd9eaa8 Mon Sep 17 00:00:00 2001 From: SEONG JUN SHIN Date: Mon, 30 Jun 2025 20:00:16 +0900 Subject: [PATCH 1/2] feat: add week 14 problems --- binary-tree-level-order-traversal/shinsj4653.py | 15 +++++++++++++++ counting-bits/shinsj4653.py | 15 +++++++++++++++ house-robber-ii/shinsj4653.py | 15 +++++++++++++++ meeting-rooms-ii/shinsj4653.py | 15 +++++++++++++++ word-search-ii/shinsj4653.py | 15 +++++++++++++++ 5 files changed, 75 insertions(+) create mode 100644 binary-tree-level-order-traversal/shinsj4653.py create mode 100644 counting-bits/shinsj4653.py create mode 100644 house-robber-ii/shinsj4653.py create mode 100644 meeting-rooms-ii/shinsj4653.py create mode 100644 word-search-ii/shinsj4653.py diff --git a/binary-tree-level-order-traversal/shinsj4653.py b/binary-tree-level-order-traversal/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/binary-tree-level-order-traversal/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/counting-bits/shinsj4653.py b/counting-bits/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/counting-bits/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/house-robber-ii/shinsj4653.py b/house-robber-ii/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/house-robber-ii/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/meeting-rooms-ii/shinsj4653.py b/meeting-rooms-ii/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/meeting-rooms-ii/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/word-search-ii/shinsj4653.py b/word-search-ii/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/word-search-ii/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + From 4a759e701c3980a9b88ed1780bb3a5f4a44547cc Mon Sep 17 00:00:00 2001 From: SEONG JUN SHIN Date: Mon, 30 Jun 2025 20:25:54 +0900 Subject: [PATCH 2/2] feat: add counting-bits sol --- counting-bits/shinsj4653.py | 41 +++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/counting-bits/shinsj4653.py b/counting-bits/shinsj4653.py index f2dd9f373..85277efa7 100644 --- a/counting-bits/shinsj4653.py +++ b/counting-bits/shinsj4653.py @@ -1,15 +1,52 @@ """ [문제풀이] # Inputs - +n: int # Outputs +ans: arr +길이: n + 1 + +ans내 각 원소들 : ans[i]: i의 이진법에서 1의 개수 + # Constraints +0 <= n <= 10^5 # Ideas +2중 for문 이면 안됨 [회고] - +dp를 활용한 풀이도 같이 알아두자 """ +# 내 풀이 +class Solution: + def countBits(self, n: int) -> List[int]: + + ans = [] + + for i in range(n + 1): + if i == 0 or i == 1: + ans.append(i) + continue + + num = i + cnt = 0 + while num > 0: + num, n = num // 2, num % 2 + if n == 1: + cnt += 1 + + ans.append(cnt) + + return ans + +# 해설 +class Solution: + def countBits(self, n: int) -> List[int]: + dp = [0] * (n + 1) + for num in range(1, n + 1): + dp[num] = dp[num // 2] + (num % 2) + return dp +