1. KMP ์๊ณ ๋ฆฌ์ฆ
ํจํด์ ๋ฌธ์ฅ ์์์ ์ข์์ ์ฐ๋ก ๋น๊ตํ๋ ๊ฒ. ๋ธ๋ฃจํธ-ํฌ์ค ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ค๋ฅด๊ฒ ํจํด์ ์์น๋ฅผ ์ข๋ ํจ์จ์ ์ผ๋ก ์ด๋์ํจ๋ค. ํจํด๊ณผ ๋ฌธ์ฅ์ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ์ ๋ ์ค๋ณต์ฐ์ฐ์ ์ต๋ํ ํผํ๋ฉด์ ํจํด์ ์ฐ์ธก์ผ๋ก ์ด๋์ํจ๋ค. ์ด๋ฅผ ์ํด์๋ ๋ฌธ์ฅ์ ๋ถ์ผ์น ๋ฐ์ ์, ์ผ๋ง๋งํผ ๊ฑด๋ ๋๋ ํ์ ๋น๊ต์ฐ์ฐ์ ํ ๊ฒ์ธ๊ฐ๋ฅผ ํ๋จํ์ฌ์ผ ํ๋ค.
2. ์คํจํจ์(ํ์ด ๋ฐฐ์ด)
KMP ์๊ณ ๋ฆฌ์ฆ์์ ํ์ ๋ฌธ์์ด์ ์ ๋์ฌ์ ์ ๋ฏธ์ฌ์ ์ผ์น ๋ถ๋ถ์ ๊ณ์ฐํ์ฌ ๋ฐฐ์ด์ ํํ๋ก ์ ์ฅํ๋ ํจ์
i๋ ์ ๋ฏธ์ฌ ๊ฐ๋ฆฌํค๋ ์ธ๋ฑ์ค, len์ ์ ๋์ฌ ๊ฐ๋ฆฌํค๋ ์ธ๋ฑ์ค
7๋ฒ์งธ : 6๋ฒ์งธ์ len=2, i=5์ผ ๋, A๊ฐ ์ด๋ฏธ ์ผ์นํ๋ ์ฌ์ค์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ด์ฉํ๊ธฐ ์ํด len์ lps[len-1]๋ก ์ด๋ํ๋ ๊ฒ. ์ด๋ KMP ์๊ณ ๋ฆฌ์ฆ ์๋ฆฌ์ ๋์ผํ๋ค.
๋ ธ๋์=์ผ์นํ์ ๋
KMP ์๊ณ ๋ฆฌ์ฆ์์๋ ์ผ์นํ์ ๋์๋, ๋ถ์ผ์นํ์ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ทธ ์ ๊น์ง๋ ์ผ์นํ๋ค๋ ๊ฒ์ ์ด์ฉํด ๋ช ๊ธ์ ๊ฑด๋์ ๊ฒ์ฌ๋ฅผ ๋ค์ ์์ํ๋ค.
3. ์๊ฐ ๋ณต์ก๋
ํ์์ ์ ๋, ์ ๋ฏธ์ฌ์ ๊ธธ์ด๋ฅผ ์ด์ฉํ์ฌ ๊ฑด๋๋ฐ๋ฏ๋ก, ๋ฌธ์์ด์ ๊ธธ์ด์ ๋น๋กํ๋ค.
์๋ณธ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ N, ํ์ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ M์ด๋ผ๋ฉด ์ต์ข ์ ์ธ ์๊ฐ ๋ณต์ก๋๋ O(N+M)์ด๋ค.
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > ๐ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ผ๋น-์นดํ ์๊ณ ๋ฆฌ์ฆ (0) | 2024.05.05 |
---|---|
๋ธ๋ฃจํธ-ํฌ์ค ์๊ณ ๋ฆฌ์ฆ (0) | 2024.05.05 |
์ต์ฅ ๊ณตํต ๋ถ๋ถ ์์ด(LCS) cf. ์ต์ฅ ๊ณตํต ๋ฌธ์์ด (0) | 2024.04.29 |
ํ๋ ฌ์ ์ฐ์์ ๊ณฑ์ (0) | 2024.04.29 |
ํฌ๋-ํ์ปค์จ ์๊ณ ๋ฆฌ์ฆ(์ต๋ ์ ๋ ๋ฌธ์ ) (3) | 2024.04.19 |