๋จ์ํ ๋ ธ๋(N, node)์ ๊ทธ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ (E, edge)์ ํ๋๋ก ๋ชจ์ ๋์ ์๋ฃ๊ตฌ์กฐ
- ์ฐ๊ฒฐ๋์ด ์๋ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ ์ ์๋ค. ex) ์ง๋, ์งํ์ฒ ๋ ธ์ ๋, ๋๋ก, ์ ๊ธฐ ํ๋ก ๋ฑ
- ๊ทธ๋ํ๋ ์ฌ๋ฌ ๊ฐ์ ๊ณ ๋ฆฝ๋ ๋ถ๋ถ ๊ทธ๋ํ๋ก ๊ตฌ์ฑ๋ ์ ์๋ค.
๊ทธ๋ํ | ํธ๋ฆฌ | |
---|---|---|
์ ์ | ๋ ธ๋์ ๊ทธ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ ํ๋๋ก ๋ชจ์ ๋์ ์๋ฃ๊ตฌ์กฐ | ๋ฐฉํฅ์ฑ์ด ์๋ ๋น์ํ ๊ทธ๋ํ์ ํ ์ข ๋ฅ |
๋ฐฉํฅ์ฑ | ๋ฐฉํฅ ๊ทธ๋ํ์ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ ๋ชจ๋ ์กด์ฌ | ๋ฐฉํฅ ๊ทธ๋ํ |
์ฌ์ดํด | ์ฌ์ดํด ๊ฐ๋ฅ ์์ฒด ๊ฐ์ ๊ฐ๋ฅ ์ํ ๊ทธ๋ํ or ๋น์ํ ๊ทธ๋ํ |
์ฌ์ดํด ๋ถ๊ฐ๋ฅ ์์ฒด ๊ฐ์ ๋ถ๊ฐ๋ฅ ๋น์ํ ๊ทธ๋ํ |
๋ฃจํธ ๋ ธ๋ | ๋ฃจํธ ๋ ธ๋์ ๊ฐ๋ ์ด ์์ | ํ ๊ฐ์ ๋ฃจํธ ๋
ธ๋ ์กด์ฌ ๋ชจ๋ ์์ ๋ ธ๋๋ ํ ๊ฐ์ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๊ฐ์ง |
๋ถ๋ชจ - ์์ | ๋ถ๋ชจ - ์์์ ๊ฐ๋ ์ด ์์ | ๋ถ๋ชจ - ์์ ๊ด๊ณ๋ก ์ด๋ฃจ์ด์ง |
๋ชจ๋ธ | ๋คํธ์ํฌ ๋ชจ๋ธ | ๊ณ์ธต ๋ชจ๋ธ |
์ํ | DFS, BFS | DFS, BFS ๋ด ์ ์, ์ค์, ํ์ |
๊ฐ์ ์ ์ | ๊ทธ๋ํ์ ๋ฐ๋ผ ๊ฐ์ ์ ์๊ฐ ๋ค๋ฆ ๊ฐ์ ์ด ์์ ์๋ ์์ |
๋ ธ๋๊ฐ N์ธ ํธ๋ฆฌ๋ ํญ์ N-1์ ๊ฐ์ ์ ๊ฐ์ง |
๊ฒฝ๋ก | - | ์์์ ๋ ๋ ธ๋ ๊ฐ์ ๊ฒฝ๋ก๋ ์ ์ผ |
์์ ๋ฐ ์ข ๋ฅ | ์ง๋, ์งํ์ฒ ๋ ธ์ ๋, ๋๋ก, ์ ๊ธฐ ๋ฑ | ์ด์ง ํธ๋ฆฌ, ์ด์ง ํ์ ํธ๋ฆฌ, ๊ท ํ ํธ๋ฆฌ ๋ฑ |
- ์ ์ (vertex):
์์น
์ ๊ฐ๋ ์ด๋ฉฐ, ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค. (node ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.) - ๊ฐ์ (edge): ์์น ๊ฐ์
๊ด๊ณ
, ์ฆ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋์
์ด๋ค. (link, branch ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.) - ์ธ์ ์ ์ (adjacent vertex): ๊ฐ์ ์ ์ํด
์ง์ ์ฐ๊ฒฐ๋ ์ ์
- ์ ์ ์ ์ฐจ์(degree):
๋ฌด๋ฐฉํฅ ๊ทธ๋ํ
์์ ํ๋์ ์ ์ ์์ธ์ ํ ์ ์
์ ์- ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์ ์กด์ฌํ๋ ์ ์ ์ ๋ชจ๋ ์ฐจ์ ํฉ = ๊ทธ๋ํ์ ๊ฐ์ ์ * 2
- ์ง์
์ฐจ์(in-degree):
๋ฐฉํฅ ๊ทธ๋ํ
์์์ธ๋ถ์์ ์ค๋
๊ฐ์ ์ ์ (๋ด์ฐจ์ ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.) - ์ง์ถ ์ฐจ์(out-degree):
๋ฐฉํฅ ๊ทธ๋ํ
์์์ธ๋ถ๋ก ํฅํ๋
๊ฐ์ ์ ์ (์ธ์ฐจ์ ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.) - ๊ฒฝ๋ก ๊ธธ์ด(path length):
๊ฒฝ๋ก๋ฅผ ๊ตฌ์ฑ
ํ๋ ๋ฐ ์ฌ์ฉ๋ ๊ฐ์ ์ ์ - ๋จ์ ๊ฒฝ๋ก(simple path): ๊ฒฝ๋ก ์ค์์
๋ฐ๋ณต๋๋ ์ ์ ์ด ์๋
๊ฒฝ์ฐ - ์ฌ์ดํด(cycle): ๋จ์ ๊ฒฝ๋ก์
์์ ์ ์ ๊ณผ ์ข ๋ฃ ์ ์ ์ด ๋์ผ
ํ ๊ฒฝ์ฐ
- ๊ฐ์ ์ ๋ฐฉํฅ์ฑ์ด ์กด์ฌํ์ง ์๋ ๊ทธ๋ํ์ด๋ค.
- ์ ์ A์ ์ ์ B๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ (A, B)์ ๊ฐ์ด ํํํ๋ค. (A, B) = (B, A)
- ex) ์๋ฐฉํฅ ํตํ
- ๊ฐ์ ์ ๋ฐฉํฅ์ฑ์ด ์กด์ฌํ๋ ๊ทธ๋ํ์ด๋ค.
- ์ ์ A์ ์ ์ B๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ <A, B> ๋๋ <B, A>์ ๊ฐ์ด ํํํ๋ค. <A, B> != <B, A> <A, B>๋ A โ B, <B, A>๋ B โ A๋ฅผ ๋ํ๋ธ๋ค.
- ex) ์ผ๋ฐฉ ํตํ
- ๊ฐ์ ์ ๋น์ฉ์ด๋ ๊ฐ์ค์น๊ฐ ํ ๋น๋ ๊ทธ๋ํ์ด๋ค.
- ๋คํธ์ํฌ(Network) ๋ผ๊ณ ๋ ํ๋ค.
- ex) ๋๋ก์ ๊ธธ์ด, ํต์ ๋ง์ ์ฌ์ฉ๋ฃ ๋ฑ
- ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์ ์๋ ๋ชจ๋ ์ ์ ์์ ๋ํด์ ํญ์ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋ ๊ทธ๋ํ์ด๋ค.
- ex) ํธ๋ฆฌ(Tree) โ ์ฌ์ดํด์ ๊ฐ์ง์ง ์๋ ์ฐ๊ฒฐ ๊ทธ๋ํ
- ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์์ ํน์ ์ ์ ์ ์ฌ์ด์ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ์ง ์๋ ๊ทธ๋ํ์ด๋ค.
- ๋จ์ ๊ฒฝ๋ก์ ์์ ์ ์ ๊ณผ ์ข ๋ฃ ์ ์ ์ด ๋์ผํ ๊ทธ๋ํ์ด๋ค.
- ์ฌ์ดํด์ด ํ์ฑ๋์ง ์๋ ๊ทธ๋ํ์ด๋ค.
- ์ํด ์๋ ๋ชจ๋ ์ ์ ์ด ์๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๊ทธ๋ํ์ด๋ค.
- ๋ฌด๋ฐฉํฅ ์์ ๊ทธ๋ํ์ ์ ์ ์ = n โ ๊ฐ์ ์ ์ = n * (n - 1) / 2
- ์ธ์ ๋ฆฌ์คํธ๋ก ๊ทธ๋ํ๋ฅผ ํํํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ๋ค.
- ๋ชจ๋ ์ ์ ์ ์ธ์ ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค. โ ๊ฐ๊ฐ์ ์ ์ ์ ์ธ์ ํ ์ ์ ๋ค์ ๋ฆฌ์คํธ๋ก ํํํ ๊ฒ
- ๋ฐฐ์ด๊ณผ ๋ฐฐ์ด์ ๊ฐ ์ธ๋ฑ์ค๋ง๋ค ์กด์ฌํ๋ ๋ ๋ค๋ฅธ ๋ฆฌ์คํธ, ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํด์ ์ธ์ ๋ฆฌ์คํธ๋ฅผ ํํํ๋ค.
- ์ธ๋ฑ์ค๋ฅผ ํตํด ๊ฐ ์ ์ ์ ๋ฆฌ์คํธ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค.
- ํ์ํ ๋งํผ์ ๋ฉ๋ชจ๋ฆฌ๋ง ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์๋ค.
- ์ ์ ๋ค์ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ํ์ธํ๋ ๋ฐ, ์๊ฐ์ด ์ ๊ฒ ๊ฑธ๋ฆฐ๋ค. โ O(n)
- ํน์ ๋ ์ ์ด ์ฐ๊ฒฐ๋์ด์๋์ง ํ์ธํ๋ ค๋ฉด ์ธ์ ํ๋ ฌ์ ๋นํด ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฐ๋ค. โ O(n)
- ๊ตฌํ์ด ์ด๋ ต๋ค.
- 2์ฐจ์ ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ๊ตฌํํ๋ค.
- ๊ฐ์ ์ด ์กด์ฌํ๋ ๋ ์ ์ ์นธ์ 1, ์กด์ฌํ์ง ์๋ ์นธ์ 0์ผ๋ก ์ฑ์ด๋ค. ๊ฐ์ค์น ๊ทธ๋ํ์ ๊ฒฝ์ฐ, ํด๋น ๊ฐ์ค์น๋ก ์ฑ์ด๋ค.
- 2์ฐจ์ ๋ฐฐ์ด์ ๊ทธ๋ํ์ ์ ๋ณด๊ฐ ๋ชจ๋ ๋ด๊ฒจ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์ ์กด์ฌ ์ฌ๋ถ๋ ๊ฐ์ค์น๋ฅผ ๋ฐ๋ก ์ฐธ์กฐํ ์ ์๋ค. โ O(1)
- ์ธ์ ๋ฆฌ์คํธ์ ๋นํด ๊ตฌํ์ด ์ฝ๋ค.
- n x n์ 2์ฐจ์ ๋ฐฐ์ด์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ ์ด์์ผ๋ก ๋ง์ด ์ฌ์ฉํ ์ ์๋ค. ex) 10000๊ฐ์ ์ ์ ์ผ๋ก ๊ตฌ์ฑ๋ ๊ทธ๋ํ ๋ด์ ๊ฐ์ ์ด 5๊ฐ๋ง ์กด์ฌํ ๊ฒฝ์ฐ
- ๋ชจ๋ ๊ฐ์ ์ ๋ณด๋ฅผ ๋์ ํ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค. โ O(n^2)
- ์ฐ๊ฒฐ ๊ทธ๋ํ์ ์์ ๊ทธ๋ํ์ ์ฐจ์ด์ ์?
- ์ธ์ ๋ฆฌ์คํธ์ ์ธ์ ํ๋ ฌ์ ์ฅ๋จ์ ์?