From 8ae76f913d3b642293e2d365150df634a40d2443 Mon Sep 17 00:00:00 2001 From: danny Date: Tue, 11 Aug 2026 16:09:49 +0900 Subject: [PATCH 1/3] 0190-reverse-bits --- reverse-bits/dahyeong-yun.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 reverse-bits/dahyeong-yun.java diff --git a/reverse-bits/dahyeong-yun.java b/reverse-bits/dahyeong-yun.java new file mode 100644 index 0000000000..1464849189 --- /dev/null +++ b/reverse-bits/dahyeong-yun.java @@ -0,0 +1,28 @@ +/** + * TC : O(1) + * - 32번의 루프를 2번 반복하므로 O(1) + * SC : O(1) + * - 32칸 고정 길이의 stack이 필요하므로 O(1) + */ + +class Solution { + public int reverseBits(int n) { + int answer = 0; + Deque stack = new ArrayDeque<>(); + + for(int i = 0; i<32; i++) { + stack.add(n % 2); + n /= 2; + } + + int j = 0; + while(!stack.isEmpty()) { + int bit = stack.getLast(); + stack.removeLast(); + answer += bit * Math.pow(2, j); + j += 1; + } + + return answer; + } +} From f2f234982748b6a6d6cd3e03ae211860129ac9f7 Mon Sep 17 00:00:00 2001 From: danny Date: Fri, 14 Aug 2026 20:58:36 +0900 Subject: [PATCH 2/3] 0424-longest-repeating-character-replacement --- .../dahyeong-yun.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 longest-repeating-character-replacement/dahyeong-yun.java diff --git a/longest-repeating-character-replacement/dahyeong-yun.java b/longest-repeating-character-replacement/dahyeong-yun.java new file mode 100644 index 0000000000..2fc0fab496 --- /dev/null +++ b/longest-repeating-character-replacement/dahyeong-yun.java @@ -0,0 +1,35 @@ +/** + * TC : O(n) + * - 문자열의 길이 n 만큼 반복하고 루프 안에서는 고정 길이를 반복하므로 O(n) + * SC : O(1) + * - 26개 알파벳의 카운트를 위한 배열을 생성하므로 O(1) + */ +class Solution { + public int characterReplacement(String s, int k) { + int max = 0; + + int len = s.length(); + int deleteTarget = 0; + int[] count = new int[26]; + for(int i=0; i count[maxCountAlphabet]) maxCountAlphabet = j; + } + + if(total - count[maxCountAlphabet] <= k) { + max = Math.max(max, total); + } else { + count[s.charAt(deleteTarget++) - 'A']--; + } + } + + return max; + } +} From 9c89884c34ef0837ef38bda47008e8e3a8e7aacd Mon Sep 17 00:00:00 2001 From: danny Date: Fri, 14 Aug 2026 21:53:44 +0900 Subject: [PATCH 3/3] 0647-palindromic-substrings --- palindromic-substrings/dahyeong-yun.java | 37 ++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 palindromic-substrings/dahyeong-yun.java diff --git a/palindromic-substrings/dahyeong-yun.java b/palindromic-substrings/dahyeong-yun.java new file mode 100644 index 0000000000..c8e061ff98 --- /dev/null +++ b/palindromic-substrings/dahyeong-yun.java @@ -0,0 +1,37 @@ +/** + * TC : O(n^2) + * - 문자열 길이 n 만큼 반복하고, 각 인덱스에서 n/2 만큼의 회문을 확인하므로 n * (n/2) => O(n^2) + * SC : O(1) + * - 별도 유의미한 공간을 사용하지 않음 + */ +class Solution { + public int countSubstrings(String s) { + int len = s.length(), count = 0; + + for(int i = 0; i= 0 && end < len && s.charAt(start) == s.charAt(end) + ) { + count++; + start--; + end++; + } + + // 짝수 길이 회문 카운트 + start = i; + end = i+1; + while( + start >= 0 && end < len && s.charAt(start) == s.charAt(end) + ) { + count++; + start--; + end++; + } + } + + return count; + } +}