์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค!
์ค๋์ ์ฐ๊ฒฐ๋ ๋ฌธ์์ด์ ํจ์จ์ ์ผ๋ก ์ ์ฅํด ๊ฒ์์ ํจ์จ์ ์ผ๋ก ๋์์ฃผ๋ ์๋ฃ๊ตฌ์กฐ์ธ ํธ๋ผ์ด(Trie)์ ๋ํด ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค!
๋ฐ๋ก ์์ํ ๊ฒ์~
Trie๋?
ํธ๋ผ์ด(trie)๋ ์ปดํจํฐ ๊ณผํ์์ ํ์ ํธ๋ฆฌ์ ์ผ์ข ์ด๋ค. ๋์ ์งํฉ์ด๋ ์ฐ๊ด ๋ฐฐ์ด์ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํธ๋ฆฌ ์๋ฃ ๊ตฌ์กฐ์ด๋ค. ์ฃผ๋ก ๋ฌธ์์ด์ด ํค์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ด์ง ํ์ ํธ๋ฆฌ์ ๋ฌ๋ฆฌ ํธ๋ฆฌ์ ์ด๋ค ๋ ธ๋๋ ๊ทธ ๋ ธ๋ ์์ฒด์ ์ฐ๊ด๋ ํค๋ ์ ์ฅํ์ง ์๋๋ค. ๋์ ๋ ธ๋๊ฐ ํธ๋ฆฌ์์ ์ฐจ์งํ๋ ์์น๊ฐ ์ฐ๊ด๋ ํค๋ฅผ ์ ์ํ๋ค. ์ฆ, ํค์ ๊ฐ์ ์๋ฃ ๊ตฌ์กฐ ์ ์ฒด์ ๋ถ์ฐ๋๋ค. ๋ ธ๋์ ๋ชจ๋ ์์์ ๋ ธ๋์ ์ฐ๊ด๋ ๋ฌธ์์ด์ ๊ณตํต ์ ๋์ฌ๋ฅผ ๊ณต์ ํ๋ค. ๋ฃจํธ๋ ๋น ๋ฌธ์์ด์ ์ฐ๊ด๋๋ค. - ์ํค ๋ฐฑ๊ณผ -
์ฆ, ํธ๋ฆฌ ํํ๋ก ์ฐ๊ฒฐ๋ ๋ฌธ์์ด์ ์ฐจ๋ก๋ก ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ ์ ๋๋ค.
์ด๋ฆ์ ์ ๋๋ ํธ๋ฆฌ ํํ๋ก ๋์ด์๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌ๋ผ๊ณ ๋ถ๋ฆฌ๋ค๊ฐ ์ค์ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ์ด๋ฆ์ด ํท๊ฐ๋ ค์ ํธ๋ผ์ด๋ผ๊ณ ๋ถ๋ฆฌ๊ฒ ๋์๋ค๊ณ ํ๋ค์.
์๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ดํด๊ฐ ์ฌ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
Example
1. ๊ฒ์
์ผ์ ์ํ ์์ ์์ ๋ก๋ ์๋์ ๊ฐ์ด ๋ฌธ์์ด์ ๊ฒ์ํ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฒ์ํ ๋จ์ด ๋ค ๋ ธ๋์ ์ด๋ค ๊ธ์๋ค์ด ์๋์ง ์ฝ๊ฒ ๊ฒ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ด ๊ทธ ๋ค๋ก ์ด์ด์ง๋ ๋จ์ด ํน์ ๋ฌธ์์ด์ด ๋จ๋ ๊ฒ์ด์ฃ .
2. ์คํ ๋ง ์ฒดํฌ
์ฌ์ ์์ ๋ชจ๋ ๋จ์ด๋ค์ ํธ๋ผ์ด ์๋ฃ๊ตฌ์กฐ๋ก ์ ์ฅํด ๋์๋ค๋ฉด ํด๋น ๋จ์ด๊ฐ ์ฌ์ ์์ ์๋์ง ์๋์ง ๋น ๋ฅด๊ฒ ํ์ํ ์ ์์ต๋๋ค.
์๋์ ๊ฐ์ด ์ฌ์ ์์ ์์ง ์์ ๋จ์ด๋ผ๋ฉด ์คํ ๋ง์ด ํ๋ฆฐ ๊ฒ ์๋์ง ๋น ๋ฅด๊ฒ ์๋ ค์ค ์ ์๋ ๊ฒ์ด์ฃ .
Search
๋ง์ฝ ๋จ์ด๊ฐ "Face", "Fat", "Farm", "From" ์ด๋ ๊ฒ ์๋ค๋ฉด ํธ๋ผ์ด์ ์ด๋ป๊ฒ ์ ์ฅ๋ ๊น์?
์๋์ ๊ฐ์ด ์ ์ฅ๋ ๊ฒ ์ ๋๋ค.
๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ์ฐพ๊ณ ์ถ์ ๋จ์ด๊ฐ "Fame" ์ด๋ผ๋ฉด ์ด๋ป๊ฒ ๊ฒ์ํด์ผ ํ ๊น์?
๋จผ์ ๊ฐ์ฅ ์ฒซ ๋ฒ์งธ ๋ ๋ฒจ์ ์ดํด๋ด์ผ๊ฒ ์ฃ ? F๊ฐ ์์ผ๋ฏ๋ก F์ ์์๋ค์ ํ์ํฉ๋๋ค.
๋ ๋ฒ์งธ ๋ ๋ฒจ์ธ "A"์ "R"์ ํ์ํ ๊ฒฐ๊ณผ 'Fame'์ ๋ ๋ฒ์งธ ๊ธ์์ธ "A"๊ฐ ์์ฃ ? A์ ์์๋ค์ ํ์ํฉ๋๋ค.
์ธ ๋ฒ์งธ ๋ ๋ฒจ์ 'Fame'์ ์ธ ๋ฒ์งธ ๊ธ์์ด m์ด ์กด์ฌํ์ง ์์ต๋๋ค.
๊ณ ๋ก 'Fame'์ ํ์ฌ ํธ๋ผ์ด์ ์กด์ฌํ์ง ์๋ ๋จ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
Insert
์์ ๊ฐ์ด ๋จ์ด๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ์ ํธ๋ผ์ด์ ์ถ๊ฐํด ์ค์ผ๊ฒ ์ฃ ?
์์ ๊ฐ์ด ์์๋ค์ ์ดํด ๋ณด์๋๋ฐ ํด๋น ๊ธ์๊ฐ ์๋ ๊ฒฝ์ฐ ์์๋ค์ ์ถ๊ฐํด ์ค๋๋ค.
๊ทธ ๋ค์ 'M'์ ์์์ผ๋ก 'Fame'์ ๋ค์ ๊ธ์์ธ 'E'๋ฅผ ์ถ๊ฐํด ์ค๋๋ค.
Complexity
์๊ฐ ๋ณต์ก๋๋ ๋จ์ด์ ๊ฐฏ์๊ฐ n, ๋จ์ด์ ํ๊ท ๊ธธ์ด๊ฐ l์ด๋ผ๊ณ ๊ฐ์ ํ์ ๋ ์ฝ์ ์ O(n*l)์ด ๋ฉ๋๋ค.
์๋ฌด๋ฆฌ ๊ธด ๋ฌธ์ฅ์ด ์๋๋ผ๋ ์ํ๋ ํ ๋จ์ด๋ฅผ ์ฐพ๋๋ฐ O(n)๋ง ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ ์ธ ์ธก๋ฉด์์ ํจ์จ์ ์ธ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
๊ณต๊ฐ ๋ณต์ก๋๋ ํ์ฉ๋๋ ๊ธ์์ ๊ฐฏ์ n, (ex: alphabet 26๊ธ์, ํ๊ธ 24๊ธ์)
๋จ์ด์ ํ๊ท ๊ธธ์ด l, ๊ฐ ์์๋ค์ ํ๊ท ๊ฐฏ์ t ๋ผ๊ณ ํ๋ฉด O(n*l*t)๊ฐ ๋ฉ๋๋ค.
๊ณ ๋ก ๊ณต๊ฐ์ ์ธ ์ธก๋ฉด์์๋ ๋นํจ์จ์ ์ธ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
'๐ฅ Computer Science > Data Structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Data Structure] B-Tree๋? (0) | 2021.12.06 |
---|---|
[Data Structure] AVL ํธ๋ฆฌ ๊ตฌํํด๋ณด๊ธฐ (feat. Swift) (0) | 2021.12.06 |
[Data Structure] AVL(Adelson-Velsky and Landis) ํธ๋ฆฌ๋? (0) | 2021.12.01 |
[Data Structure] ์ด์ง ํ์ ํธ๋ฆฌ(Binary Search Tree) ๊ตฌํํด๋ณด๊ธฐ (feat.Swift) (0) | 2021.11.18 |
[Data Structure] ์ด์ง ํ์ ํธ๋ฆฌ(Binary Search Tree)๋? (0) | 2021.11.17 |
๋๊ธ