Graph
1. Graph ๋?
์ ์ (Vertext, Node) ๊ณผ ๊ฐ์ (Edge) ์ ์งํฉ์ผ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ
์ : ๋์(์ ์ ) ์ ๋๋ก(๊ฐ์ ), ์ฌ๋(์ ์ ) ๊ณผ ์น๊ตฌ ๊ด๊ณ(๊ฐ์ ), ์๋ฒ(์ฅ์ )์ ์ฐ๊ฒฐ(๊ฐ์ ) ๋ฑ
์์ :
์ ์ : A, B, C, D
๊ฐ์ : A-B, A-C, B-D
โ ์๊ฐํ :
A --- B
| |
C D
2. Graph ์ ์ข
๋ฅ
๋ฐฉํฅ์ฑ
๋ฌด๋ฐฉํฅ ๊ทธ๋ํ
๊ฐ์ ์ด ์๋ฐฉํฅ (A-B
= B-A
)
๋ฐฉํฅ ๊ทธ๋ํ
๊ฐ์ ์ด ๋จ๋ฐฉํฅ (AโB
)
๊ฐ์ ๊ฐ์ค์น
๊ฐ์ค์น ๊ทธ๋ํ
๊ฐ์ ์ ๋น์ฉ/๊ฑฐ๋ฆฌ ๋ฑ์ด ์์
๋น๊ฐ์ค์น ๊ทธ๋ํ
๊ฐ์ ์ ๋น์ฉ ์์
์๊ธฐ ๊ฐ์
๋ฃจํ ๊ทธ๋ํ
์ ์ ์ด ์๊ธฐ ์์ ๊ณผ ์ฐ๊ฒฐ๋ ๊ฐ์ ์ด ์์
์ค๋ณต ๊ฐ์
๋ฉํฐ ๊ทธ๋ํ
์ ์ ์ฌ์ด์ ์ฌ๋ฌ ๊ฐ์ ํ์ฉ
์ฐ๊ฒฐ์ฑ
์ฐ๊ฒฐ ๊ทธ๋ํ
๋ชจ๋ ์ ์ ์ด ์ด์ด์ง
์ํ์ฑ
์ฌ์ดํด ๊ทธ๋ํ
์ํ(์ฌ์ดํด)์ด ์กด์ฌ
3. Graph ํํ ๋ฐฉ๋ฒ
1) ์ธ์ ํ๋ ฌ(Adjacency Matrix)
2์ฐจ์ ๋ฐฐ์ด ์ฌ์ฉ :
graph[i][j] == 1
โi
์์j
๋ก ๊ฐ์ ์กด์ฌ๋ฉ๋ชจ๋ฆฌ:
O(N^2)
์ฅ์ : ๊ฐ์ ์ฌ๋ถ ์ฆ์ ํ์ธ
๋จ์ : ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ฌํจ(ํฌ์ ๊ทธ๋ํ์ ๋นํจ์จ์ )
int[][] graph = new int[N + 1][N + 1];
graph[1][2] = 1;
graph[2][3] = 1;
2) ์ธ์ ๋ฆฌ์คํธ(Adjacency List)
List<List<Integer>>
ํํ๋ก ํํ๋ฉ๋ชจ๋ฆฌ :
O(V + E)
(๊ณต๊ฐ ํจ์จ ๋์)์ฅ์ : ์ฐ๊ฒฐ๋ ๋ ธ๋ ์ํ์ ์ ํฉ
๋จ์ : ๊ฐ์ ์กด์ฌ ์ฌ๋ถ ํ์ธ์ด ๋๋ฆด ์ ์์.
List<List<Integer>> graph = new ArrayList<>();
for(int i = 0; i <= N; i++) {
graph.add(new ArrayList<>());
}
graph.get(1).add(2);
graph.get(2).add(3);
์ค๋ฌด๋ ์ฝํ ์์๋ ์ธ์ ๋ฆฌ์คํธ + ์ฐ์ ์์ ํ(PriorityQueue) ์กฐํฉ์ด ๊ฐ์ฅ ํํจ.
4. ๊ทธ๋ํ ๊ด๋ จ ์ฉ์ด ์ ๋ฆฌ
Vertex (์ ์ )
๊ทธ๋ํ์ ๋ ธ๋
Edge (๊ฐ์ )
๋ ธ๋ ๊ฐ์ ์ฐ๊ฒฐ
Degree (์ฐจ์)
์ ์ ์ ์ฐ๊ฒฐ๋ ๊ฐ์ ์
In-degree / Out-degree
๋ค์ด์ค๋ / ๋๊ฐ๋ ๊ฐ์ ์ (๋ฐฉํฅ ๊ทธ๋ํ์์)
Path (๊ฒฝ๋ก)
๋ ์ ์ ์ฌ์ด์ ์ฐ๊ฒฐ๋ ์ ์ ๋ค์ ์์
Cycle (์ฌ์ดํด)
์์์ ๊ณผ ๋์ ์ด ๊ฐ์ ๊ฒฝ๋ก
Connected
์ฐ๊ฒฐ๋์ด ์๋์ง ์ฌ๋ถ
Weight (๊ฐ์ค์น)
๊ฐ์ ์ ๊ฑฐ๋ฆฌ, ๋น์ฉ, ์๊ฐ ๋ฑ
5. Graph ์๊ณ ๋ฆฌ์ฆ
โ
ํ์
DFS (๊น์ด ์ฐ์ ํ์)
BFS (๋๋น ์ฐ์ ํ์)
โ
์ต๋จ ๊ฒฝ๋ก
Dijkstra (๋ค์ต์คํธ๋ผ)
Bellman-Ford (์์ ํ์ฉ)
Floyd-Warshall (๋ชจ๋ ์ ๊ฐ ์ต๋จ ๊ฑฐ๋ฆฌ)
โ
์ต์ ์ ์ฅ ํธ๋ฆฌ
Kruskal
Prim
โ
์์ ์ ๋ ฌ
DAG(๋ฐฉํฅ ๋น์ํ ๊ทธ๋ํ)์์ ๋ ธ๋ ์์ ์ ๋ ฌ
โ
์ ๋์จ ํ์ธ๋ (Disjoint Set)
์๋ก ๋ค๋ฅธ ์งํฉ์ ์ฐ๊ฒฐ ์ฌ๋ถ ํ์ธ (์ฌ์ดํด ํ์ง)
6. Graph ๋ ์ด๋์ ์ฐ์?
์ง๋ / ๋ค๋น๊ฒ์ด์ : ๊ฑฐ๋ฆฌ ๊ณ์ฐ, ์ต๋จ ๊ฒฝ๋ก
SNS : ์น๊ตฌ ์ถ์ฒ, ์ฐ๊ฒฐ๋ ๊ทธ๋ฃน ์ฐพ๊ธฐ
๋คํธ์ํฌ : ๋ผ์ฐํ , ํ์ ์ต์ํ
๊ฒ์ : ์ด๋ ๊ฐ๋ฅ ์์ญ, ํผ์ฆ ํ์
์ค์ผ์ค๋ง : ์์ ์์(์์ ์ ๋ ฌ)
AI : ์ํ ๊ณต๊ฐ ๊ทธ๋ํ ๊ธฐ๋ฐ ๊ฒฝ๋ก ํ์
Last updated
Was this helpful?