์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๊ธฐ๋ฒ
์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๊ธฐ๋ฒ
(Sliding Window Technique)์ ์ฐ์์ ์ธ ๋ถ๋ถ ๋ฐฐ์ด(subarray)์ด๋ ๋ถ๋ถ ๋ฌธ์์ด(substring)์ ํจ์จ์ ์ผ๋ก ๋ค๋ฃจ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฒ์
๋๋ค. ์ด ๊ธฐ๋ฒ์ ๋ฐฐ์ด ๋๋ ๋ฌธ์์ด์์ ์ผ์ ํ ํฌ๊ธฐ์ ์๋์ฐ๋ฅผ ์ด๋์ํค๋ฉด์ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒ ๊ณ์ฐํ๋ ๋ฐ ์ฌ์ฉ.
โ
ย ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๊ธฐ๋ฒ์ ํต์ฌ ์์ด๋์ด
- ์๋์ฐ ์ค์ :
- ๊ณ ์ ํฌ๊ธฐ ์๋์ฐ (Fixed-size Window): ์๋์ฐ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋์ด ์์ผ๋ฉฐ, ์ด๋ฅผ ๋ฐฐ์ด์ด๋ ๋ฌธ์์ด์ ๋ถ๋ถ ๊ตฌ๊ฐ์ผ๋ก ์๊ฐํ ์ ์๋ค.
- ๊ฐ๋ณ ํฌ๊ธฐ ์๋์ฐ (Variable-size Window): ์๋์ฐ์ ํฌ๊ธฐ๊ฐ ๋ณ๋ํ๋ฉฐ, ๋ฌธ์ ์ ๋ฐ๋ผ ์๋์ฐ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ฉด์ ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๋๋ค.
- ์๋์ฐ ์ด๋:
- ์๋์ฐ๋ฅผ ๋ฐฐ์ด ๋๋ ๋ฌธ์์ด ์์์ ํ ๋จ๊ณ์ฉ ์ด๋์ํค๋ฉฐ, ๋งค๋ฒ ์๋์ฐ ๋ด๋ถ์ ๊ฐ์ ๊ณ์ฐํ๊ฑฐ๋ ๊ฐฑ์ .
- ์๋์ฐ์ ์ด๋์ ๋ฐ๋ผ ๋ด๋ถ ๊ฐ์ ๊ฐฑ์ ํ๋ ๋ฐฉ์์ผ๋ก ์๊ฐ ๋ณต์ก๋๋ฅผ ์ค์ผ ์ ์๋ค.
- ํจ์จ์ ์ธ ๊ณ์ฐ:
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๊ธฐ๋ฒ์ ๋ฐฐ์ด์ด๋ ๋ฌธ์์ด์ ๋ฐ๋ณต์ ์ผ๋ก ์ํํ๋ฉด์ ๋งค๋ฒ O(1) ์๊ฐ์ ์๋์ฐ์ ๊ณ์ฐ์ ์ํํ ์ ์์ด, ์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ฅผ O(n)์ผ๋ก ์ค์ผ ์ ์๋ค.
์๋ฌธ: https://velog.io/@ehdtkd98/ํ๋ก๊ทธ๋๋จธ์ค-ํ ์ธํ์ฌ-ํ์ด์ฌ