๐Graph
์ฌ๋ฌ ๊ฐ์ ์ ์ ๊ณผ ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ผ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ
G = (V, E): V๋ ์ ์ ์ ์งํฉ, E๋ ๊ฐ์ ๋ค์ ์งํฉ
๐์ฉ์ด
- ์ ์ (Vertex) : ๊ทธ๋ํ๋ฅผ ์ฐ๊ฒฐํ ๊ฐ์ฒด
- ๊ฐ์ (Edge) : ๋ ๊ฐ์ ์ ์ ์ ์ฐ๊ฒฐํ๋ ์
- ์ธ์ (Adjacent) : ๊ทธ๋ํ์์ (Vแตข, Vโฑผ)๊ฐ ์์ ๋, ๋ ์ ์ Vแตข์ Vโฑผ๋ฅผ ์ธ์ ํ๋ค๊ณ ํจ
- ์ฐจ์(Degree) : ์ ์ ์ ๋ถ์๋์ด ์๋ ๊ฐ์ ์ ์
- ์ง์ ์ฐจ์(In-Degree) : ๋ฐฉํฅ ๊ทธ๋ํ์์ ์ธ๋ถ์์ ๋ค์ด์ค๋ ๊ฐ์ ์ ์
- ์ง์ถ์ฐจ์(Out-Degree) : ๋ฐฉํฅ ๊ทธ๋ํ์์ ์ธ๋ถ๋ก ํฅํ๋ ๊ฐ์ ์ ์
- ๊ฒฝ๋ก(Path : ์ ์ Vแตข์์ Vโฑผ๊น์ง ๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์ ์ ์ ์์๋๋ก ๋์ดํ ๋ฆฌ์คํธ
- ๋จ์ ๊ฒฝ๋ก(Simple Path) : ๋ชจ๋ ๋ค๋ฅธ ์ ์ ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ๋ก(ํ๋ถ ๊ทธ๋ฆฌ๊ธฐ)
- ๊ฒฝ๋ก ๊ธธ์ด(Path Length : ๊ฒฝ๋ก๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ์ ์ ์
- ์ฌ์ดํด(Cycle) : ๋จ์ ๊ฒฝ๋ก ์ค์์ ๊ฒฝ๋ก์ ์์ ์ ์ ๊ณผ ๋ง์ง๋ง ์ ์ ์ด ๊ฐ์ ๊ฒฝ๋ก โ ์ฌ์ดํด์ด ์๋ ๊ทธ๋ํ๋ฅผ Tree๋ผ๊ณ ํจ
๐๊ตฌํ
๐์ธ์ ํ๋ ฌ
๊ทธ๋ํ๋ฅผ 2์ฐจ์ ๋ฐฐ์ด๋ก ๊ตฌํํ๋ ๋ฐฉ์ ์ ์ ๊ฐ์ ์ง์ ์ฐ๊ฒฐ๋์ด ์๋ค๋ฉด, 2์น์ ๋ฐฐ์ด์ ํด๋น ์ ์ ์ธ๋ฑ์ค์ 1(
๊ฐ์ค์น ๊ทธ๋ํ๋ผ๋ฉด ํด๋น ๊ฐ์ค์น ๊ฐ), ์๋๋ผ๋ฉด 0์ ์ ์ฅ

- ๋ชจ๋ ์ ์ ์ ๋ํด ๊ฐ์ ์ ๋ณด๋ฅผ ์ ๋ ฅํด์ผ ํ๋ฏ๋ก ์ธ์ ํ๋ ฌ์ ์์ฑํ ๋๋ O(nยฒ) ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง โ ์ฆ, ๋ชจ๋ ๊ฐ์ ์ ์๋ฅผ ์์๋ด๋ ค๋ฉด ์ธ์ ํ๋ ฌ ์ ์ฒด๋ฅผ ํ์ํด์ผํ๋ฏ๋ก ์ญ์ O(nยฒ) ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง
- ๋ ์ ์ ์ ๋ํ ์ฐ๊ฒฐ์ ์กฐํํ ๋๋ **O(1)**์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง
- ํญ์ 2์ฐจ์ ๋ฐฐ์ด์ด ํ์ํ๋ฏ๋ก ํ์ ์ด์์ ๊ณต๊ฐ์ด ๋ญ๋น๋จ
- ์ธ์ ๋ฆฌ์คํธ์ ๋นํด ๊ตฌํ์ด ์ฌ์
- ๊ฐ์ ์ด ๋ง์ด ์กด์ฌํ๋ ๊ทธ๋ํ๋ฅผ ๊ตฌํํ ๋ ์ ํฉ
๐์ธ์ ๋ฆฌ์คํธ
๊ทธ๋ํ๋ฅผ ๋ฆฌ์คํธ๋ก ๊ตฌํํ๋ ๋ฐฉ์ ์ ์ ์ ๋ฆฌ์คํธ ๋ฐฐ์ด๋ก ๊ด๊ณ๋ฅผ ์ค์ ํด, ์ ์ ๋ค ๊ฐ์ ์ง์ ์ฐ๊ฒฐ์ด ๋์ด์์ผ๋ฉด ํด๋น ์ ์ ์ ์ธ๋ฑ์ค์ ๋ฆฌ์คํธ ํ์์ผ๋ก ๊ทธ ์ ์ ์ ์ฝ์

- ๋ชจ๋ ๊ฐ์ ์ ์๋ฅผ ์์๋ด๋ ค๋ฉด ํค๋ ๋ ธ๋๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ์ธ์ ๋ฆฌ์คํธ๋ฅผ ํ์ํด์ผํ๋ฏ๋ก O(n + e) ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง
- ๋ ์ ์ ์ ๋ํ ์ฐ๊ฒฐ์ ์กฐํํ ๋ **O(e)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง
- ํ์ํ ๋งํผ ๊ณต๊ฐ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ณต๊ฐ์ ๋ญ๋น๊ฐ ์ ์
- ์ธ์ ํ๋ ฌ์ ๋นํด ๊ตฌํ์ด ์ด๋ ค์
- ๊ฐ์ ์ด ์ ๊ฒ ์กด์ฌํ๋ ๊ทธ๋ํ๋ฅผ ๊ตฌํํ ๋ ์ ํฉ
๐์ข ๋ฅ
- ์ด ์ธ์๋ ๋ถ๋ถ ๊ทธ๋ํ, ์ ํฅ ๋น์ํ ๊ทธ๋ํ(DAG), ์ฐ๊ฒฐ ๊ทธ๋ํ, ๋จ์ ๊ทธ๋ํ ๋ฑ์ด ์์
๐๋ฌด๋ฐฉํฅ ๊ทธ๋ํ
๋ ์ ์ ์ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ ๋ฐฉํฅ์ด ์๋ ๊ทธ๋ํ

- ์ ์ ์ฌ์ด์ ๊ด๊ณ๋ ์๋ฐฉํฅ
- (Vแตข, Vโฑผ) == (Vโฑผ, Vแตข)
๐๋ฐฉํฅ ๊ทธ๋ํ
๋ ์ ์ ์ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ ๋ฐฉํฅ์ด ์๋ ๊ทธ๋ํ

- ์ ์ ์ฌ์ด์ ๊ด๊ณ๋ ์ผ๋ฐฉํฅ
- (Vแตข, Vโฑผ) != (Vโฑผ, Vแตข)
๐๊ฐ์ค์น ๊ทธ๋ํ
๋ ์ ์ ์ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ

๐์์ ๊ทธ๋ํ
๋ชจ๋ ์ ์ ์ฌ์ด์ ๊ฐ์ ์ด ์กด์ฌํ๋ ๊ทธ๋ํ

- ๊ฐ ์ ์ ์ด ๋ค๋ฅธ ๋ชจ๋ ์ ์ ๊ณผ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ต๋ ๊ฐ์ ์๋ฅผ ๊ฐ์ง
๊ทธ๋ํ์ ์ต๋ ๊ฐ์ ์
๐๋ฌด๋ฐฉํฅ ๊ทธ๋ํ : ๐๋ฐฉํฅ ๊ทธ๋ํ :