variable size 3

424. Longest Repeating Character Replacement ★★★★★

424. Longest Repeating Character Replacement https://youtu.be/gqXU1UyA8pk 이 문제는 슬라이딩 윈도우 [Sliding Window Variable Size] + 해시맵을 활용해서 풀 수 있어요.핵심은 윈도우 안의 가장 많이 나온 문자를 기준으로나머지를 바꾸는 데 k번 이하로 가능한지 체크하는 것입니다.✅ 아이디어 요약:윈도우 내 가장 많이 나온 문자 수 = max_count현재 윈도우 크기 = r - l + 1바꿔야 하는 문자 수 = 전체 윈도우 크기 - max_count이 값이 k보다 작거나 같을 때만 윈도우 유지, 아니면 왼쪽 포인터 이동✅ 코드 (주석 포함)from collections import defaultdictclass Soluti..

LeetCode/Grind169 2025.04.04

[Sliding Window Variable Size] 3. Longest Substring Without Repeating Characters

3. Longest Substring Without Repeating Characters 최종 코드https://youtu.be/wiGpQwVHdE0?si=b-6NK2xTHLhlVE5- 이 문제는 슬라이딩 윈도우 기법을 사용해서 효율적으로 풀 수 있어요.핵심 아이디어는: 중복 문자가 없을 때까지 윈도우를 오른쪽으로 확장하고,중복 문자가 나오면 왼쪽 포인터를 이동시켜 중복을 제거하는 거예요. 🧠 예제 설명예제 1: "zxyzxyz""zxy" (길이 3)까지는 중복 없음 → 계속 확장"zxyz"에서 다시 'z' 중복 → "xyz"부터 다시 시작가장 긴 중복 없는 부분은 "xyz" → 정답: 3✅ 시간복잡도O(n) (n은 문자열 길이)각 문자는 최대 한 번씩 set에서 추가/제거됨 class Solution..

LeetCode/NeetCode 2024.11.29

[Sliding Window Variable Size] 209. Minimum Size Subarray Sum ★

209. Minimum Size Subarray Sum https://youtu.be/aYqYMIqZx5s?si=65RqKA5cewrGgD2Q class Solution: def minSubArrayLen(self, target: int, nums: List[int]) -> int: # 문제에서 'subarray'가 언급되면 슬라이딩 윈도우 문제일 가능성이 높음 l, total = 0, 0 # l: 윈도우의 왼쪽 끝 인덱스, total: 현재 윈도우의 합 res = float("inf") # 결과 값을 저장할 변수. 최소 길이를 구하기 위해 초기값을 무한대로 설정 # r은 윈도우의 오른쪽 끝 인덱스를 나타냄 for r in range..