ํธ๋ฆฌ ์ฉ๋ ์ฉ์ด ์ ๋ฆฌ ์ข ๋ฅ ์ด์ง ํธ๋ฆฌ ์ผ๋ฐ ํธ๋ฆฌ ์ค๋ ๋ ์ด์ง ํธ๋ฆฌ ๊ตฌํ ๋ฐฐ์ด ํํ๋ฒ ์ฐ๊ฒฐ๋ฆฌ์คํธ ํํ๋ฒ ํธ๋ฆฌ ํ์ฉ ํ์ ์งํฉ ํํ ํํ๋ง ์ฝ๋ ํธ๋ฆฌ ํธ๋ฆฌ๋ ๊ทธ๋ํ์ ํ ์ข ๋ฅ๋ก ๋ฌด๋ฐฉํฅ ์ฐ๊ฒฐ ๋น์ํ ๊ทธ๋ํ(Connected Undirected Acyclic Graph)์ด๋ค. ๋ฃจํธ ๋ ธ๋๊ฐ ์กด์ฌํ๊ณ , ๋ฃจํธ ๋ ธ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ ธ๋์ in-degree๊ฐ 1์ธ ๋ฐฉํฅ๊ทธ๋ํ๋ผ๊ณ ๋งํ ์๋ ์๋ค. ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ ๊ทธ๋ํ์ ํ ์ข ๋ฅ์ด๋ฏ๋ก ๋น์ ํ ์๋ฃ๊ตฌ์กฐ์ ์ํ๋ค. ์ฉ๋ ๊ณ์ธต์ ์ธ ์กฐ์ง์ ํํํ๊ธฐ ์ํด ์ฌ์ฉ๋๊ฑฐ๋, ์ปดํจํฐ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ / ์ธ๊ณต์ง๋ฅ์ decision tree ๋ฑ์ ์ด์ฉ๋๋ค. ๋ํ ์๋ฃ์ ํ์ / ์ ๋ ฌ / DB ๊ตฌ์ฑ์ด๋ ๋ถ์๊ตฌ์กฐ์ ์ค๊ณ ๋ฑ์์๋ ๋ค์ํ๊ฒ ์ด์ฉ๋๋ค. (๊ฒฐ์ ํธ๋ฆฌ)(์ด์งํ์) ์ฉ์ด ์ ๋ฆฌ ๋ ธ๋ ..
์๋ก ์๋ฃ๊ตฌ์กฐ ์๋ฃ๊ตฌ์กฐ๋ ์ปดํจํฐ์์ ์๋ฃ๋ฅผ ์ ๋ฆฌํ๊ณ ์กฐ์งํํ๋ ๋ค์ํ ๊ตฌ์กฐ๋ฅผ ๋งํ๋ค. ํ๋ก๊ทธ๋จ์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ด๋ฃจ์ด์ ธ์๊ธฐ ๋๋ฌธ์, ์๋ฃ๊ตฌ์กฐ๋ ๋ฐ๋์ ๊ณต๋ถํด์ผํ๋ ๋ถ์ผ์ด๋ค. ์๋ฃ๊ตฌ์กฐ๋ ๋จผ์ ๋จ์ ์๋ฃ๊ตฌ์กฐ์ ๋ณตํฉ ์๋ฃ๊ตฌ์กฐ๋ก ๊ตฌ๋ถ๋๊ณ , ๋ณตํฉ ์๋ฃ๊ตฌ์กฐ์๋ ์ ํ ๊ตฌ์กฐ์ ๋น์ ํ ๊ตฌ์กฐ๊ฐ ์๋ค. ์์ฐจ์ ์ผ๋ก ์ดํด๋ณด์. ๋ฐฐ์ด, ๋ฌธ์์ด ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์คํ, ํ, ๋ฑ ๊ทธ๋ํ ํธ๋ฆฌ ํ ๊ตฌ์กฐ์ฒด
์ธ๊ทธ๋จผํธ ํธ๋ฆฌ https://www.acmicpc.net/blog/view/9 ๋ฐฑ์ค๋ ๊ธ ๋ฐฐ์ด ํฌ๊ธฐ ๊ฒฐ์ ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ C++์ ๊ฒฝ์ฐ, vector ์๋ฃํ์ ์ฌ์ฉํ๋๋ฐ python์ผ๋ก ๊ตฌํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค. ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์ผ๋ง๋ ๋์ด์ผ ํ ์ง ๊ฐ๋ ํ๊ธฐ ์ํด ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํด๋ณด์. 2์ ์ ๊ณฑ ์๊ฐ ๋ฆฌํ ๋ ธ๋์ ์(n)๋ก ์ฃผ์ด์ง๋ค๋ฉด ( ๋ถ์ํด์ผํ data ๊ฐฏ์๊ฐ 2์ ์ ๊ณฑ ์๋ผ๋ฉด ) ๊ฐ ๋จ๊ณ๋ง๋ค 1/2์ฉ ์ค์ด๋๊ฐ๋ฏ๋ก log(n)์ด ํ์ํ ์ด ๋จ๊ณ(ํ์ดํ)๊ฐ ๋๊ณ ์ ์ฒด ์ธต์ ๊ฐฏ์, ์ฆ ๋์ด(h)๋ log(n)+1์ด ๋๋ค. ์ต์์ ๋ ธ๋๋ถํฐ 2^(0)๊ฐ์ ๋ ธ๋๋ก ์์ํ์ฌ ์ธต์ด ์ฆ๊ฐํ ์๋ก 2์ ์ง์ ๋ํ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๊ฝ์ฐฌ ์ด์ค ํธ๋ฆฌ(full binary tree)์ ์ด ๋ ธ๋ ..
Comment