5. POSTECH Computer Algorithm Team
- 차수(degree) : 한 node에 연결된 edge의 수
- 인접(adjacent) : 두 개의 node사이에 edge 존재 여부
- 보행(walk) : node와 edge가 교대로 나오는 열(sequence)이면서, 각 edge가 앞뒤의 node와 연결된 열
- 경로(path) : node가 중복되지 않는 walk
- 트레일(trail) : edge가 중복되지 않는 walk
- 닫힌 보행(closed walk) : 처음과 마지막의 node가 같은 walk
- 닫힌 경로(cycle) : 처음과 마지막의 node가 같은 simple path
- 닫힌 트레일(circuit) : 처음과 마지막의 node가 같은 trail
그래프 용어 용어
7. POSTECH Computer Algorithm Team
- 그래프의 정보로는, G(V,E)의 경우, 노드(node=vertex)의 수, 간선(edge)의 정보가 있다.
- 노드의 수는 int로 저장
- 간선의 정보는?
그래프 구현법
8. POSTECH Computer Algorithm Team
- 1번째로 간선의 정보를 이차원 배열을 통하여 저장 가능
- Adj[a][b] = (node a와 node b 사이의 간선이 존재 여부)
- 2번째 방법으로 2차원 vecto를 사용하여 저장
- Vector<vector<int> > adj -> adj[a]의 모든 원소는 node a와 연결된 노드의 번호
- G(v,e,w)
그래프 구현법 2
9. POSTECH Computer Algorithm Team
- 1번째로 간선의 정보를 이차원 배열을 통하여 저장 가능
- Adj[a][b] = (node a와 node b 사이의 간선의 가중치 )
- 2번째 방법으로 2차원 vecto를 사용하여 저장
- Vector<vector<pair<int,int> > > adj -> adj[a]의 모든 원소는 node a와 연결된 노드의 번호+가중치
- 2가지 방법의 차이는?
그래프 구현법 3
10. POSTECH Computer Algorithm Team
- Adj[a][b] = (node a와 node b 사이의 간선의 가중치)
- A,B 가 주어질 때, 두 노드 사이의 간선을 O(1) 시간으로 파악 가능
- N^2의 공간복잡도 가짐
- Vector<vector<pair<int,int> > > adj -> adj[a]의 모든 원소는 node a와 연결된 노드의 번호+가중치
- A,B가 주어져도 바로 파악 불가
- 총 간선의 수에 비례한 메모리 사용
그래프 구현법 4
11. POSTECH Computer Algorithm Team
- 그래프 G(V,E)와 임의의 node a가 주어질 때, a로 부터 차례대로 그래프의 node를 탐색하는 알고리즘
- Bfs : 너비 우선 탐색, 탐색하는 node와 a의 거리가 순차적으로 증가
- Dfs : 깊이 우선 탐색, 탐색하는 node와 a의 거리가 증감 반복
BFS DFS란? 탐색 알고리즘
13. POSTECH Computer Algorithm Team
- Queue를 사용
- 시작 점을 queue에 push
- Queue가 빌 때까지 queue.front의 인접한 node중 방문하지 않는 node를 방문 -> queue에 push + 방문 기록
- Queue.front 탐색
- Queue.pop()
- 위 반복
- 시간 복잡도는?
- O(V+E)
BFS 구현 어떻게 할까여
15. POSTECH Computer Algorithm Team
- 재귀함수 혹은 stack으로 구현
- 재귀함수 구현은 쉬우나 시간과 메모리가 오래 걸린다. Stack은 어려우나 성능이 좋다
- 재귀함수 : 인자로 현재 node와 인접 행렬, 방문 기록을 지님
- 현재 node를 방문, 탐색1
- 현재 node에서 갈 수 있고, 방문하지 않은 node를 인자로 함수 호출
- 현재 node 탐색2
- 시간 복잡도?
- O(V+E)
DFS 구현 어케하누
16. POSTECH Computer Algorithm Team
https://algospot.com/judge/problem/read/DICTIONARY 고대어 사전
https://algospot.com/judge/problem/read/GALLERY 감시 카메라
https://www.acmicpc.net/problem/7576 토마토
https://www.acmicpc.net/problem/7569 토마토마토
예시 문제 problem