ex1. 구간합 문제
N개의 숫자, 창문의 크기 W가 주어졌을 때, 왼쪽부터 W개씩 연속 합을 모두 구하라.
- 기존에는 모든 창문 위치마다 O(W)에 합을 구해서 전체가 O(NW)의 시간 복잡도를 가진다.
Sliding Window를 적용한다면?
Sliding Window의 기본 아이디어
첫번째 창문 안에 있는 숫자의 합 = S, 맨 앞의 숫자 = A
ex2. Anagram 문제
문자열 S1, S2가 주어진다. S2의 부분 문자열 중, S1과 anagram 관계인 것의 개수를 구하라.
- Anagram: 알파벳의 구성은 유지한 채, 순서만 뒤바뀐 단어 관계
# s2에서 s1를 포함하는 부분은 4군데
s1 = abr
s2 = abradacadabra
알파벳 구성: ..., c1(t1), ..., c2(t2), ...
알파벳 구성: ..., c1(t1-1), ..., c2(t2+1), ...
관련 문제
BOJ_11003