ํ์ผ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๋ชฉ์
ํ์ผ ์์ถ์ ๋ํ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฝ์ฐ ์๊ฐ๋ณด๋ค ๊ณต๊ฐ์ ์ ์ฝํ๋ ๊ฒ์ ์ด์ ์ ๋ง์ถ์ด ์ฐ๊ตฌํ๋ค.
์ปดํจํฐ ํ์ผ ๋๋ถ๋ถ์ด ์ค๋ณต๋๋ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ ๊ฒ์ ์ฐฉ์ํ์ฌ ํ ์คํธ ํ์ผ, ์ด๋ฏธ์ง, ์ฌ์ด๋ ๋ฑ์ ํ์ผ์ ์์ถํ๋ค.
์ด ๊ธ์์ ๋ค๋ฃจ๋ ํํ๋ง ์ธ์ฝ๋ฉ์ด ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ๊ฒฉ ์๊ณ ๋ฆฌ์ฆ์ ์ํ๋ค.
ํํ๋ง ์๊ณ ๋ฆฌ์ฆ
ํํ๋ง ์๊ณ ๋ฆฌ์ฆ์ ํธ๋ผ์ด(Trie) ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ ๋ค.
ํธ๋ผ์ด๋ ํ๋์ ๋ฌธ์ ์ฝ๋๊ฐ ๋ค๋ฅธ ๋ฌธ์ ์ฝ๋์ ์ ๋๋ถ(prefix)๊ฐ ๋์ง ์๋ ๊ฒ์ ๋ณด์ฅํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
ํธ๋ผ์ด๋ฅผ ํธ๋ฆฌ์ ํผ๋ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ Trie์ ์ด์์ retrieve๋ก๋ถํฐ ์์ผ๋ฉฐ ํธ๋ฆฌ์๋ ์์ฐํ ๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
ํํ๋ง ์ธ์ฝ๋ฉ์ ์ฌ๋ฌ ํธ๋ผ์ด ์ค ๊ฐ์ฅ ์ข์ ํธ๋ผ์ด๋ฅผ ๊ฒฐ์ ํ๋ ๊ธฐ๋ฒ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
์ฐ์ ์์ ํ(Priority Queue)๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋์๊ฐ ๊ฐ์ฅ ์์ ๋ฌธ์๋ถํฐ ์ฐจ๋ก๋ก ํธ๋ผ์ด๋ฅผ ๋ง๋ ๋ค.
ํ ๋ฌธ์์ ์ฝ๋๊ฐ ๋ค๋ฅธ ๋ฌธ์์ ์ฝ๋ ์๋์ prefix๊ฐ ๋ ์ ์๋ค๋ ํน์ง์ด ์์ด Prefix Code ๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๋ ๊ณผ์ ์ ํฌ๊ฒ 4๊ฐ์ง๋ค.
1. ๋ฐ์ดํฐ+๋น๋์๋ฅผ ๋ชจ๋ PQ์ insertํ๋ค.
2. ๊ฐ์ฅ ๋น๋์๊ฐ ๋ฎ์ ๋ ๋ ธ๋๋ฅผ ๊ณจ๋ผ PQ์์ ๋นผ๊ณ
3. ์๋ก์ด ๋ ธ๋๋ฅผ ๋ง๋ค์ด 2๋ฒ์์ ๋นผ๋ ๋ ธ๋ ๋์ ์ฐ๊ฒฐํ๋ค(๋น๋์๋ฅผ ํฉ์น๋ ๊ณผ์ )
4. ์ด๊ฑธ ๋ค์ PQ์ ๋ฃ๋๋ค.
2~4 ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค๋ณด๋ฉด ํํ๋ง ํธ๋ฆฌ๊ฐ ๊ตฌ์ถ๋๋ค.
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ]๋ฐ์ดํฐ ์ํธํ ์๊ณ ๋ฆฌ์ฆ - RSA ์ํธํ (1) | 2024.04.18 |
---|