
[์๋ฃ๊ตฌ์กฐ] ๊ทธ๋ํ(Graph) + ๊ตฌํํ๊ธฐ(Java์ ์ธ์ ํ๋ ฌ๊ณผ ์ธ์ ๋ฆฌ์คํธ)
ยท
Algorithm/KBro Study
๊ทธ๋ํ(Graph)๋? ๊ทธ๋ํ๋ ์์๋ค์ด ์๋ก ๋ณต์กํ๊ฒ ์ฐ๊ฒฐ๋์ด ์๋ ๊ด๊ณ๋ฅผ ํํํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๊ทธ๋ํ๋ ์ ์ (vertex)๊ณผ ์ ์ ๊ณผ ์ ์ ์ ์ฐ๊ฒฐํ๋ ๊ฐ์ (edge)๋ค์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋๋ค. -> ์ ์ (vertex)๋ ๋
ธ๋(node)๋ผ๊ณ ๋ ํจ ์๋๋ ๋ํ์ ์ธ ๊ทธ๋ํ ์ข
๋ฅ๋ค์ ์์์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ ๊ทธ๋ํ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์. ๊ทธ๋ํ ๊ตฌํํ๊ธฐ ์ปดํจํฐ์์ ๊ทธ๋ํ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์๋ ๋ฐฐ์ด(Array)๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์ฐ๊ฒฐ๋ฆฌ์คํธ(Linked List)๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ๊ทธ๋ํ ๊ตฌํ - ์ธ์ ํ๋ ฌ(Adjacency Materix) ์ ์ a์ ์ ์ b๋ฅผ ์๋ ๊ฐ์ ์ด ์์ ๊ฒฝ์ฐ, ํ๋ ฌ(a,b)์ 1์ ํ๊ธฐํด์ค๋ค. ๋ง์ฝ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ๋ผ๋ฉด 1 ๋์ ๊ฐ์ค์น๋ฅผ ๋ฃ์ ์ ์๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด..