From c6d199d8cf06ed2378e10149aca709bd0bc73181 Mon Sep 17 00:00:00 2001 From: sejineer Date: Fri, 23 May 2025 00:59:47 +0900 Subject: [PATCH 1/3] reverse-bits solution --- reverse-bits/sejineer.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 reverse-bits/sejineer.py diff --git a/reverse-bits/sejineer.py b/reverse-bits/sejineer.py new file mode 100644 index 000000000..ee97cdab2 --- /dev/null +++ b/reverse-bits/sejineer.py @@ -0,0 +1,12 @@ +""" +시간 복잡도: O(1) +공간 복잡도: O(1) +""" +class Solution: + def reverseBits(self, n: int) -> int: + result = 0 + for _ in range(32): + result <<= 1 + result |= n & 1 + n >>= 1 + return result From 1743351aa38b939ebf34807c37e2e26248995f60 Mon Sep 17 00:00:00 2001 From: sejineer Date: Sat, 24 May 2025 10:00:42 +0900 Subject: [PATCH 2/3] clone-graph solution --- clone-graph/sejineer.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 clone-graph/sejineer.py diff --git a/clone-graph/sejineer.py b/clone-graph/sejineer.py new file mode 100644 index 000000000..5dfbf9b28 --- /dev/null +++ b/clone-graph/sejineer.py @@ -0,0 +1,23 @@ +""" +시간 복잡도: O(V + E) V: 노드 개수, E: 간선 개수 +공간 복잡도: O(V) +""" +from collections import deque +from typing import Optional +class Solution: + def cloneGraph(self, node: Optional['Node']) -> Optional['Node']: + if not node: + return + + clone = Node(node.val) + vis = {node: clone} + queue = deque([node]) + + while queue: + cur = queue.popleft() + for nxt in cur.neighbors: + if nxt not in vis: + vis[nxt] = Node(nxt.val) + queue.append(nxt) + vis[cur].neighbors.append(vis[nxt]) + return clone From ca4fdb75a7475964a9f1d67df454212aa1715ab8 Mon Sep 17 00:00:00 2001 From: sejineer Date: Sat, 24 May 2025 10:35:47 +0900 Subject: [PATCH 3/3] palindromic-substrings solution --- palindromic-substrings/sejineer.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 palindromic-substrings/sejineer.py diff --git a/palindromic-substrings/sejineer.py b/palindromic-substrings/sejineer.py new file mode 100644 index 000000000..2d3104665 --- /dev/null +++ b/palindromic-substrings/sejineer.py @@ -0,0 +1,19 @@ +""" +시간 복잡도: O(N^2) +공간 복잡도: O(1) +""" +class Solution: + def countSubstrings(self, s: str) -> int: + result = 0 + def count_palindrome(left: int, right: int): + count = 0 + while left >= 0 and right < len(s) and s[left] == s[right]: + count += 1 + left -= 1 + right += 1 + return count + + for i in range(len(s)): + result += count_palindrome(i, i) + result += count_palindrome(i, i + 1) + return result