
😎풀이
- 우측 포인터를 증가 시키며, 최빈 단어의 수 파악
- 현재 윈도우 크기 - 최빈 단어의 수가
k를 넘기는 경우 윈도우 사이즈 초과
2-1. 좌측 포인터를 증가시켜 안정화 시킨 후 최대 길이 갱신
- 탐색된 연속성있는 문자열의 최대 길이 반환
function characterReplacement(s: string, k: number): number {
const freq = new Map<string, number>()
let left = 0
let maxLen = 0
let maxFreq = 0
for(let right = 0; right < s.length; right++) {
const curr = s[right]
freq.set(curr, (freq.get(curr) ?? 0) + 1)
maxFreq = Math.max(maxFreq, freq.get(curr))
while(((right - left + 1) - maxFreq) > k) {
freq.set(s[left], (freq.get(s[left]) ?? 1) - 1)
left++
}
maxLen = Math.max(maxLen, right - left + 1)
}
return maxLen
};