From 48c6dacf567a04f619a18f8fd2bbd4c9e3a068f1 Mon Sep 17 00:00:00 2001 From: JeonJe <43032391+JeonJe@users.noreply.github.com> Date: Wed, 12 Aug 2026 22:20:55 +0900 Subject: [PATCH 1/4] reverse bits solution --- reverse-bits/JeonJe.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 reverse-bits/JeonJe.java diff --git a/reverse-bits/JeonJe.java b/reverse-bits/JeonJe.java new file mode 100644 index 0000000000..01a936cb7a --- /dev/null +++ b/reverse-bits/JeonJe.java @@ -0,0 +1,14 @@ +import java.util.*; + +// TC: O(1) +// SC: O(1) +class Solution { + public int reverseBits(int n) { + int answer = 0; + for (int i = 0; i < 32; i++) { + int bitFlag = (n >> i) & 1; + answer += (bitFlag << (31 - i)); + } + return answer; + } +} From 28b445261133bdcc0e3ff0ebb01aa88426666ada Mon Sep 17 00:00:00 2001 From: JeonJe <43032391+JeonJe@users.noreply.github.com> Date: Wed, 12 Aug 2026 23:09:29 +0900 Subject: [PATCH 2/4] longest repeating character replacement solution --- .../JeonJe.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 longest-repeating-character-replacement/JeonJe.java diff --git a/longest-repeating-character-replacement/JeonJe.java b/longest-repeating-character-replacement/JeonJe.java new file mode 100644 index 0000000000..9ae05959ac --- /dev/null +++ b/longest-repeating-character-replacement/JeonJe.java @@ -0,0 +1,29 @@ +import java.util.*; + +// TC: O(n) +// SC: O(1) +class Solution { + public int characterReplacement(String s, int k) { + int[] counts = new int[26]; + int left = 0; + + for (int right = 0; right < s.length(); right++) { + counts[toAlphabetIndex(s.charAt(right))]++; + + int windowLength = right - left + 1; + int mostFreq = Arrays.stream(counts).max().getAsInt(); + //바꿀 대상이 k 횟수보다 크면, left을 옮김 + if (windowLength - mostFreq > k) { + counts[toAlphabetIndex(s.charAt(left))]--; + left++; + } + } + + return s.length() - left; + } + + private int toAlphabetIndex(char c) { + return c - 'A'; + } + +} From 19e4a09f85cc047ce9ce75e090d8d6c40e2e893e Mon Sep 17 00:00:00 2001 From: JeonJe <43032391+JeonJe@users.noreply.github.com> Date: Fri, 14 Aug 2026 23:46:00 +0900 Subject: [PATCH 3/4] clone graph solution --- clone-graph/JeonJe.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 clone-graph/JeonJe.java diff --git a/clone-graph/JeonJe.java b/clone-graph/JeonJe.java new file mode 100644 index 0000000000..7cab5fd072 --- /dev/null +++ b/clone-graph/JeonJe.java @@ -0,0 +1,28 @@ +import java.util.*; + +// TC: O(V + E) +// SC: O(V) +class Solution { + public Node cloneGraph(Node node) { + return deepCopy(node, new HashMap<>()); + } + + private Node deepCopy(Node node, Map cloned) { + if (node == null) { + return null; + } + + if (cloned.containsKey(node)) { + return cloned.get(node); + } + + Node clonedNode = new Node(node.val); + cloned.put(node, clonedNode); + + for (Node neighbor : node.neighbors) { + clonedNode.neighbors.add(deepCopy(neighbor, cloned)); + } + + return clonedNode; + } +} From a191dd67686daab256548c74efde513a07fed8c5 Mon Sep 17 00:00:00 2001 From: JeonJe <43032391+JeonJe@users.noreply.github.com> Date: Sat, 15 Aug 2026 19:34:15 +0900 Subject: [PATCH 4/4] longest common subsequence solution --- longest-common-subsequence/JeonJe.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 longest-common-subsequence/JeonJe.java diff --git a/longest-common-subsequence/JeonJe.java b/longest-common-subsequence/JeonJe.java new file mode 100644 index 0000000000..d552e1f640 --- /dev/null +++ b/longest-common-subsequence/JeonJe.java @@ -0,0 +1,20 @@ +// TC: O(m * n) +// SC: O(m * n) +class Solution { + + public int longestCommonSubsequence(String text1, String text2) { + int[][] dp = new int[text1.length() + 1][text2.length() + 1]; + + for (int i = text1.length() - 1; i >= 0; i--) { + for (int j = text2.length() - 1; j >= 0; j--) { + + dp[i][j] = text1.charAt(i) == text2.charAt(j) ? + 1 + dp[i + 1][j + 1] : + Math.max(dp[i + 1][j], dp[i][j + 1]); + + } + } + return dp[0][0]; + } + +}