목차
• 그래프는 G(V, E)로 정의하고, V(Vertext : 정점)과 E(Edge : 간선) 의 집합을 의미한다.
• 연결되어 있는 원소들간의 관계를 표현하는 자료구조이다.
인접행렬
2차원 배열을 이용해 그래프를 표현하는 방법
1) 무방향 그래프
입력 형식 : edge = [[1, 2], [1, 3], [2, 4], [2, 5], [3, 4]]
graph = [[0] * (n+1) for _ in range(n+1)]
for [a, b] in edge:
graph[a][b] = 1
graph[b][a] = 1
2) 방향 그래프
입력 형식 : edge = [[1, 2], [1, 3], [2, 5], [3, 4], [4, 2]]
graph = [[0] * (n+1) for _ in range(n+1)]
for [a, b] in edge:
graph[a][b] = 1
3) 가중치 그래프
입력형식 : edge = [[1, 2, 2], [1, 3, 4], [2, 5, 5], [3, 4, 5], [4, 2, 2]]
graph = [[0] * (n+1) for _ in range(n+1)]
for [a, b, c] in edge:
graph[a][b] = c
인접 리스트
1) 무방향 그래프
입력형식 : edge = [[1, 2], [1, 3], [2, 4], [2, 5], [3, 4]]
graph = [[] for _ in range(n+1)]
for [a, b] in edge:
graph[a].append(b) graph[b].append(a)
2) 방향 그래프
입력형식 : edge = [[1, 2], [1, 3], [2, 5], [3, 4], [4, 2]]
graph = [[] for _ in range(n+1)]
for [a, b] in edge:
graph[a].append(b)
3)가중치 그래프
입력형식 : edge = [[1, 2, 2], [1, 3, 4], [2, 5, 5], [3, 4, 5], [4, 2, 2]]
graph = [[] for _ in range(n+1)]
for [a, b, c] in edge:
graph[a].append([b, c])
'코딩테스트[파이썬] > 입문자를 위한 코딩테스트 핵심' 카테고리의 다른 글
[그래프] -컴퓨터 개수 (0) | 2024.01.23 |
---|---|
[BFS] -검정색 영역구하기 (0) | 2024.01.23 |
[BFS] -최소점프 (0) | 2024.01.23 |
[DFS] -픽셀수 구하기 (0) | 2024.01.23 |
[DFS] -검정색 구하기 (0) | 2024.01.23 |