diff --git a/longest-repeating-character-replacement/juhui-jeong.java b/longest-repeating-character-replacement/juhui-jeong.java new file mode 100644 index 0000000000..2984b03a50 --- /dev/null +++ b/longest-repeating-character-replacement/juhui-jeong.java @@ -0,0 +1,26 @@ +/* + * 시간복잡도: O(n) + * 공간복잡도: O(1) +*/ +class Solution { + public int characterReplacement(String s, int k) { + int left = 0; + int[] freq = new int[26]; + int maxFreq = 0; + int ans = 0; + + for (int right = 0; right < s.length(); right++) { + int rIdx = s.charAt(right) - 'A'; + freq[rIdx]++; + maxFreq = Math.max(maxFreq, freq[rIdx]); + + while((right - left + 1) - maxFreq > k) { + int lIdx = s.charAt(left) - 'A'; + freq[lIdx]--; + left++; + } + ans = Math.max(ans, right - left + 1); + } + return ans; + } +} diff --git a/reverse-bits/juhui-jeong.java b/reverse-bits/juhui-jeong.java new file mode 100644 index 0000000000..3a8dd1cae8 --- /dev/null +++ b/reverse-bits/juhui-jeong.java @@ -0,0 +1,22 @@ +/* + * 시간 복잡도: O(1) + * 공간 복잡도: O(1) + */ +class Solution { + + public static String toBinaryString(int value) { + String str = Integer.toBinaryString(value); + while (str.length() < 32) { + str = "0" + str; + } + return str; + } + + public int reverseBits(int n) { + String binaryString = toBinaryString(n); + String reversed = new StringBuilder(binaryString).reverse().toString(); + + int result = Integer.parseUnsignedInt(reversed, 2); + return result; + } +}