[코딩테스트] 그래프
reference : 2021 코딩테스트 기초(최백준) 강의를 공부하며 정리한 내용입니다.
그래프
- 자료구조의 일종
- 정점(Node, Vertex) : 하나의 점
- 간선(Edge) : 정점간의 관계를 나타낸다. 정점과 정점을 연결함.
-
G = (V,E)로 나타냄
- 경로
- 정점 A에서 B로 가는 경로 : 연결되어 있는 간선을 통해서만 이동 가능함, 연속하는 정점 사이의 간선을 통해서!
- 사이클
- 시작정점 == 도착정점
- 정점 A에서 다시 A로 돌아오는 경로 ex) A->C->B->A, A->C->E->B->A …
- 단순 경로와 단순 사이클
- 경로 / 사이클에서 같은 정점을 두 번 이상 방문하지 않는 경로/사이클
- 특별한 말이 없으면, 일반적으로 사용하는 경로와 사이클은 단순 경로/사이클
- 방향 있는 그래프(Directed Graph)
- 화살표가 있는 방향으로만 갈 수 있다
- 방향 없는 그래프(Undirected Graph)
- 간선에 방향이 없다. A - C는 A->C 와 C->A를 나타냄.
- 양방향 그래프(Bidirection Graph)
- 간선 여러개
- 두 정점 사이에 간선이 여러 개
- 루프
- 간선의 양 끝 점이 같은 경우
- A -> A
- 가중치
- 간선에 가중치가 있는 경우엔 A->B 이동하는 거리, 시간, 비용 등..
- 매우 중요!!!
- 가중치가 없는 경우엔 1이라고 생각하기
- 차수
- 정점과 연결되어 있는 간선의 개수
- 방향 그래프의 경우엔 In-degree, Out-degree 나누어서 차수 계산
댓글남기기