티스토리 뷰
(정점=노드 같은 뜻! 혼용해서 사용할 시 혼동 방지!)
그래프에서 각 정점끼리 사이의 최단 거리를 구하는 알고리즘 방법은 여러 가지가 있다. 문제에 따라 효율적인 방법이 다르므로 잘 선택해서 사용해야 한다.
문제의 종류
- 하나의 정점에서 다른 하나의 정점까지 최단 경로를 구하는 문제
 - 하나의 정점에서 다른 모든 정점까지의 최단 경로를 구하는 문제
 - 각 모든 정점에서 다른 모든 정점까지의 최단 경로를 구하는 문제
 
응용으로 한 중간 정점을 거쳐서 가는 최단경로 등 다양한 문제의 종류에 적용하여 사용할 수 있다.
알고리즘 종류
하나의 정점에서 다른 모든 정점까지 최단경로를 구하는 문제
-간선의 가중치가 모두 같은 그래프일 경우
- BFS
 
-간선의 가중치가 각각 다른 그래프일 경우
- 다익스트라
 - 벨만-포드 → 음수 가중치의 간선이 존재할 때
 
모든 정점에서 다른 모든 정점까지 최단경로를 구하는 문제
- 플로이드 와샬
 
1. 다익스트라(Dijkstra) 알고리즘
간단히 예를 들어보면 A->C로 갈 때 A->B->C 가는 경로의 가중치 합이 A->C의 가중치 합보다 작다면 B를 거쳐가는 경로를 선택하는 알고리즘이다.
2. 벨만-포드(Bellman-Ford) 알고리즘
음의 가중치가 있을 때에 사용할 수 있는 알고리즘이다.
3. 플로이드-와샬(Floyd-Warshall) 알고리즘
A, B, C의 정점이 있다면 A와 B, C 정점 간의 최단경로, 또 B와 A, C정점 간의 최단경로 C와 A, B 간의 최단경로를 구하는 즉, 모든 정점에서 다른 모든 정점 간의 최단경로를 구하는 알고리즘이다.
공부하다가 추가할 내용이나 문제가 있으면 추가&수정할 예정!
'CS공부 > 알고리즘&문제풀이' 카테고리의 다른 글
| [프로그래머스] 2021카카오 인턴십 : 표 편집 (java) (0) | 2021.07.12 | 
|---|---|
| [알고리즘] DP (Dynamic Programming) 동적 계획법 (0) | 2021.07.11 | 
| [백준 1647] 도시 분할 계획(java)-MST 프림(Prim) (0) | 2021.06.23 | 
| [백준 10775] 공항 (java) (0) | 2021.06.16 | 
| [백준 13460]구슬 탈출 2/삼성 sw역량 테스트 기출(java) (0) | 2021.06.10 | 
					댓글
						
					
					
					
				
			
										공지사항
										
								
							
								
								
									최근에 올라온 글
									
							
								
								
									최근에 달린 댓글
									
							
								
								- Total
 
- Today
 
- Yesterday
 
									링크
									
								
							
								
								
									TAG
									
							
								
								- BFS
 - 완전탐색
 - Stomp
 - Spring
 - 운영체제
 - dfs
 - JavaScript
 - 삼성 sw역량테스트
 - 최소 스패닝 트리
 - SWEA
 - 알고리즘
 - 코딩테스트
 - websocket
 - 프로그래머스
 - programers
 - java
 - Oracle
 - 삼성 sw역량 테스트
 - sockjs
 - 채팅
 - MST
 - 자바
 - OS
 - 분리 집합
 - Heap
 - 정렬
 - 백준
 - DP
 - git
 - Baekjoon
 
| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
									글 보관함