From 6897c74372e598b76812da93bbf8672b907c5f4a Mon Sep 17 00:00:00 2001 From: juhui Date: Sun, 11 Jan 2026 11:55:10 +0900 Subject: [PATCH 1/2] Week 09 Solutions --- reverse-bits/juhui-jeong.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/reverse-bits/juhui-jeong.java b/reverse-bits/juhui-jeong.java index 3a8dd1cae..09e0ed9d6 100644 --- a/reverse-bits/juhui-jeong.java +++ b/reverse-bits/juhui-jeong.java @@ -3,6 +3,25 @@ * 공간 복잡도: O(1) */ class Solution { + public int reverseBits(int n) { + int result = 0; + + for (int i = 0; i < 32; i++) { + result = (result << 1) | (n & 1); + n >>= 1; + } + return result; + } +} + +/* + * 시간 복잡도: O(1) + * 공간 복잡도: O(32) + * + * 해당 코드로도 동작하지만 문자열 변환 -> 뒤집기 -> 다시 문자열 파싱의 과정을 거치지 않고 + * 비트를 조작하는 것이 문제의 의도에 더 부합함. + * +class Solution { public static String toBinaryString(int value) { String str = Integer.toBinaryString(value); @@ -20,3 +39,4 @@ public int reverseBits(int n) { return result; } } + */ From b254fbf5fe0fac89789596c913e5a91990ce6d27 Mon Sep 17 00:00:00 2001 From: juhui Date: Sun, 11 Jan 2026 11:56:43 +0900 Subject: [PATCH 2/2] add09 Solutions complexity --- linked-list-cycle/juhui-jeong.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 linked-list-cycle/juhui-jeong.java diff --git a/linked-list-cycle/juhui-jeong.java b/linked-list-cycle/juhui-jeong.java new file mode 100644 index 000000000..a890e044d --- /dev/null +++ b/linked-list-cycle/juhui-jeong.java @@ -0,0 +1,17 @@ +/* + * 시간 복잡도: O(n) + * 공간 복잡도: O(n) + */ +public class Solution { + public boolean hasCycle(ListNode head) { + Set visited = new HashSet<>(); + while (head != null) { + if (visited.contains(head)) { + return true; + } + visited.add(head); + head = head.next; + } + return false; + } +}