From acf90533c18a23a1b2bbe0f1babecc6fdc8fd00a Mon Sep 17 00:00:00 2001 From: sadie100 <03sadie@gmail.com> Date: Tue, 21 Apr 2026 21:18:11 +0900 Subject: [PATCH 1/3] sadie100: reverse bits solution --- reverse-bits/sadie100.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 reverse-bits/sadie100.ts diff --git a/reverse-bits/sadie100.ts b/reverse-bits/sadie100.ts new file mode 100644 index 0000000000..82717769e6 --- /dev/null +++ b/reverse-bits/sadie100.ts @@ -0,0 +1,19 @@ +/** + n의 뒤의 자리에서부터 비트로 변환해서 result에 붙이고, result 비트를 앞으로 당기는 일을 32번 반복해서 뒤집어진 비트를 만든다 + + 시간복잡도 : O(1) - 비트 연산 + 공간복잡도 : O(1) + */ + +function reverseBits(n: number): number { + let result = 0 + + for (let i = 0; i < 32; i++) { + let bit = n & 1 + + result = (result << 1) | bit + + n = n >>> 1 + } + return result >>> 0 +} From 4b29af85b4548deb7f0156b8835ef95a4acb77fa Mon Sep 17 00:00:00 2001 From: Se Hee Kim <82367039+sadie100@users.noreply.github.com> Date: Thu, 23 Apr 2026 12:48:44 +0900 Subject: [PATCH 2/3] Update reverse-bits/sadie100.ts Co-authored-by: Dale Seo <5466341+DaleSeo@users.noreply.github.com> --- reverse-bits/sadie100.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reverse-bits/sadie100.ts b/reverse-bits/sadie100.ts index 82717769e6..f079c8c382 100644 --- a/reverse-bits/sadie100.ts +++ b/reverse-bits/sadie100.ts @@ -9,7 +9,7 @@ function reverseBits(n: number): number { let result = 0 for (let i = 0; i < 32; i++) { - let bit = n & 1 + const bit = n & 1 result = (result << 1) | bit From a0a5139d5d02c28aa88124c444019bcb1283d85d Mon Sep 17 00:00:00 2001 From: sadie100 <03sadie@gmail.com> Date: Sun, 26 Apr 2026 01:46:27 +0900 Subject: [PATCH 3/3] sadie100: longest repeating character solution --- .../sadie100.ts | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 longest-repeating-character-replacement/sadie100.ts diff --git a/longest-repeating-character-replacement/sadie100.ts b/longest-repeating-character-replacement/sadie100.ts new file mode 100644 index 0000000000..9017f2cd06 --- /dev/null +++ b/longest-repeating-character-replacement/sadie100.ts @@ -0,0 +1,34 @@ +/* +start, end 투 포인터 변수를 생성하고 end를 하나씩 늘려 가며 s를 탐색 +글자별 개수를 저장하는 map, 최빈 등장수 maxCount를 통해 가장 많이 나온 캐릭터의 카운트를 저장하고 +만약 end-start+1-maxCount가 k를 넘어가면 start를 +1한다 +매번 end-start+1와 현 result를 비교하여 큰 값을 result로 갱신한다 + +시간복잡도 : O(N) +*/ + +function characterReplacement(s: string, k: number): number { + let start = 0 + let end = 0 + let result = 0 + let maxCount = 0 + const charMap = new Map() + + while (end < s.length) { + const thisChar = s[end] + const updatedCount = (charMap.get(thisChar) || 0) + 1 + charMap.set(thisChar, updatedCount) + maxCount = Math.max(maxCount, updatedCount) + + if (end - start + 1 - maxCount > k) { + const startChar = s[start] + charMap.set(startChar, charMap.get(startChar) - 1) + start += 1 + } + + result = Math.max(result, end - start + 1) + end += 1 + } + + return result +}