이 글은 인프런 [자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 ] 강의를 수강하며 작성한 글입니다.
자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의
자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성
www.inflearn.com
그래프는 정점과 간선의 집합으로, G(V, E) [정점 V 간선 E] 로 표현한다.
그 종류는 무방향 그래프, 방향 그래프, 가중치 방향그래프로 나눌 수 있다.
<무방향그래프>
무방향 그래프는 방향이 없지만 양방향이라고 생각하면 편하다. 즉 1은 2로 2는 1로 갈 수 있다.
행과 열을 모두 노드라고 생각한다.
이를 인접행렬 2차원 배열로 표현하면 아래와 같다.
graph[a][b] = 1;
graph[b][a] = 1;
(배열의 빈 칸은 0으로 채워져 있다.)
<방향그래프>
방향 그래프는 각 노드에서 다른 노드로 정해진 방향으로만 갈 수 있다.
행에서 열로 갈 수 있다라고 생각하면 편하다.
== (1은 2과 3으로 갈 수 있다. 2는 5로 갈 수 있다. ..)
이를 인접행렬 2차원 배열로 표현하면 아래와 같다.
graph[a][b] = 1;
(배열의 빈 칸은 0으로 채워져 있다.)
<가중치 방향그래프>
가중치 방향그래프는 방향그래프에서 비용을 추가한 것이라고 생각하면 편하다.
(1에서 2로 갈 때 비용이 2만큼 든다.)
이를 인접행렬 2차원 배열로 표현하면 아래와 같다.
graph[a][b] = c;
(배열의 빈 칸은 0으로 채워져 있다.)
'알고리즘 > 자바 알고리즘 문제풀이: 코딩테스트 대비' 카테고리의 다른 글
[알고리즘/java] 경로탐색(DFS 인접리스트, ArrayList) (0) | 2021.12.22 |
---|---|
[알고리즘/java] 경로탐색(DFS 인접행렬, 2차원 배열) (0) | 2021.12.21 |
[알고리즘/java] 송아지 찾기 1(BFS) (0) | 2021.12.15 |
[알고리즘/java] 이진트리 레벨탐색(BFS) (0) | 2021.12.14 |
[알고리즘/java] 부분집합 구하기(DFS) (0) | 2021.12.11 |