๐ ์ฌ์ฉ๋ชฉ์
์ ๋ ฌ๋ ์ ๋ฏธ์ฌ(SA)์์ ์ธ์ ํ ์ ๋ฏธ์ฌ๋ค๋ผ๋ฆฌ(๋ฐ๋ก ๋ค), ๋ช ์นธ๊น์ง ๊ฒน์น๋ฅผ ๋ด์ ๋ฐฐ์ด. ๋ฐ๋ณต๋ ๊ฐ์ฅ ๊ธด ๋ถ๋ถ ๋ฌธ์์ด์ ๋น ๋ฅด๊ฒ ๊ตฌํ ์ ์๋ค.
SA์ ์์ฉ ๋ฐฐ์ด๋ก O(N)์ผ๋ก ๋ง๋ค ์ ์๋ค.
ex) banana
๐ ๊ตฌํ๋ฐฉ๋ฒ
LCP ๋ฐฐ์ด์ ํน์ง์ ์ด๋ค ๋ ์ธ์ ํ ์ ๋ฏธ์ฌ X, Y๊ฐ ์๊ณ ๊ทธ๋ค์ LCP ๊ฐ์ด z(>0)๋ฉด, X, Y์์ ์์ ํ ๊ธ์์ฉ์ ๋บ ๊ฒ ์ญ์ ์ ๋ฏธ์ฌ์ด๋ฉฐ, ์ด๋ค์ LCP ๊ฐ์ ์ต์ z-1์ด๋ค.
์ด๋ฅผ ์ฌ์ฉํด์ ์์์๋ถํฐ ํ๊ธ์์ฉ ๋บ ์ ๋ฏธ์ฌ์ LCP ๊ฐ์ ๊ตฌํ๋ค
ex) banana
banana -> na -> LCP = 0
anana -> banana -> LCP = 0
nana -> x -> LCP = x
ana -> anana -> LCP = 3(z)
na -> nana -> LCP = 2(z-1)
a -> ana -> LCP = 1(z-1)
๐ ๋งํฌ
์๋๋งํฌ์ ์์ธํ ์ค๋ช
๋์ด์๋ค.
์ ๋ฏธ์ฌ๋ฐฐ์ด
https://blog.naver.com/kks227/221028710658
๐ ์ฌ์ฉ๋ชฉ์
์ต์ฅ ๊ณตํต ๋ถ๋ถ ๋ฌธ์์ด.
๋ ๋จ์ด ์ค์ ๊ฒน์น๋ ๋ฌธ์์ด ์ค ๊ฐ์ฅ ๊ธด ๋ฌธ์์ด
๐ ๊ตฌํ๋ฐฉ๋ฒ
๋ ๋จ์ด๋ฅผ ๋ถ์ฌ์ LCP๋ฅผ ๊ตฌํ๋ค.
์ด ๋ ๋ ๋จ์ด ์ฌ์ด์ '#','$'๋ฑ์ ๊ธฐํธ๋ฅผ ์์ด ๊ตฌ๋ถ ์์ผ ์ค๋ค.
LCS๋ LCP์ค ์ต๋๊ฐ์ด ์๋, ๋ฐ๋์ชฝ์ ๊ธ์๊ฐ ํ ๊ธ์๋ผ๋ ๋ค์ด ์๋ ๋จ์ด์ LCP ์ค ์ต๋๊ฐ์ด๋ค.
์ฆ, SA์์ ์ธ์ ํ ๋ฌธ์์ด์ด ๋ฐ๋์ชฝ์ ์๋ ์ง ํ์ธ์ ํด์ผํ๋ค.
ex)
1. abcdabcdabcd
2. abcds
-> abcdabcdabcd#abcds
LCS = 4 ('abcd')
๐ ๋งํฌ
์๋๋งํฌ์ ์์ธํ ์ค๋ช
๋์ด์๋ค.
์ ๋ฏธ์ฌ๋ฐฐ์ด
https://blog.naver.com/kks227/221028710658