Algorithm
[Algorithm | Python] HeavyLight Decomposition (HLD)
ใ ในใท ์ฌ๋ ค์ผ์ง, ์ฌ๋ ค์ผ์ง ํ๊ณ ํ๋ ๊ฑธ ์ด์ ์ผ ์ ๋ฆฌ. ์์ง ์์ฑ๋์ง ์์๋ค HeavyLight Decomposition (HLD)๋ ํธ๋ฆฌ์์์ ์ฟผ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ํํ๋๋ก ํ๋ ํ ํฌ๋์ด๋ค. ๋ค์๊ณผ ๊ฐ์ ๋ ์ฟผ๋ฆฌ๊ฐ ์๋ค. 1. ํธ๋ฆฌ์ ์ ์ $u$ ์์ $v$ ๋ก ๊ฐ๋ ๊ฒฝ๋ก ์ค ๊ฐ์ฅ ํฐ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์ ์ ์ ์ฐพ๋ ์ฟผ๋ฆฌ 2. ์ ์ ์ ๊ฐ์ค์น๋ฅผ ๋ฐ๊พธ๋ ์ฟผ๋ฆฌ ๋ฐฐ์ด์์ ์ ์ฟผ๋ฆฌ๋ค์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๊ฐ๋จํ๋ค. ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ๋ ํ์ ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด $O(QlogN)$์ ํด๊ฒฐํ ์ ์๋ค. ํ์ง๋ง ์ด๋ ๋ฐฐ์ด์ด ์ ํ์ธ ์ ์ ํ์ฉํ ํ์ด๋ฒ์ด๊ธฐ์, ๋น์ ํ ์๋ฃ๊ตฌ์กฐ์ธ ํธ๋ฆฌ์๋ ์ ์ฉํ ์ ์๋ค. ํธ๋ฆฌ๋ฅผ ์ ๋นํ ๋๋ ์, ๋๋ ๊ตฌ๊ฐ์ ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ๋ก ๊ด๋ฆฌํ๋ฉด ์ด๋จ๊น? ๋ผ๋ ๋ฐ์์์ ๋์จ ๊ฒ ์ค๋ ๋ค๋ฃฐ HeavyLight Decompos..
[ํ์ด์ฌ | Python] ํธ๋ผ์ด (Trie) ์๋ฃ๊ตฌ์กฐ
๋ฌธ์์ด์ ํญ์ ์ด๋ ต๋ค. KMP๋ ๊ทธ๋ ๊ณ , digit์ผ๋ก ์ ๋ ฌํ๋ ๊ฒ๋ ๊ทธ๋ ๊ณ , ์๋ฉด ์์๋ก ๋จธ๋ฆฌ์ํ์ง๋ ๋ถ์ผ. ๊ทธ๋งํผ ์ด๋ ต๊ฒ ๋ง๋ค๋ฉด ํจ์ฌ ์ด๋ ต๊ฒ๋ ๋ง๋ค ์ ์๋ค๋ ์ด์ผ๊ธฐ๊ฒ ์ง. ์ค๋์ ํธ๋ผ์ด๋ฅผ ๊ณต๋ถํ๋ค. Radix tree / Prefix tree ๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋๋ฐ, ํ ๋จ์ด์ ์ ๋์ฌ(์ ๋์ด)๋ฅผ ๋ชจ๋ ์ ์ฅํ๊ณ ์๋ค. (ํด๋น ๋จ์ด์ ๋๋ฌํ๊ธฐ๊น์ง์ ๋ฌธ์๋ค์ ์ ์ฅํ๋ค) donghoon ์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ณด๋ฉด, dong ๋ ์ ๋์ฌ๊ฐ ๋ ์ ์๊ณ , do ๋ ์ ๋์ฌ๊ฐ ๋ ์ ์๋ค. ํธ๋ผ์ด์์๋ ์ด ๋จ์ด๋ค์ด ์๋ก ํฌํจ๊ด๊ณ์ ์๋ค๋ ๊ฒ์ ์๋ ค์ค๋ค. ํธ๋ผ์ด์ "app", "ant", "apple"์ด๋ผ๋ ๋จ์ด๋ค์ ์ ์ฅํ๋ค๊ณ ํ์. ํธ๋ผ์ด์๋ ์ง๊ธ๊น์ง์ ๋ชจ๋ ๋จ์ด์ ์์ทจ๋ฅผ ์ ์ฅํ๋ค๊ณ ํ๋ค. ๋จ์ด์ ๊ฐ ๊ธ์๋ง๋ค, ์กด์ฌํ์ง ์์ผ๋ฉด ์..