티스토리 뷰
(정점=노드 같은 뜻! 혼용해서 사용할 시 혼동 방지!)
그래프에서 각 정점끼리 사이의 최단 거리를 구하는 알고리즘 방법은 여러 가지가 있다. 문제에 따라 효율적인 방법이 다르므로 잘 선택해서 사용해야 한다.
문제의 종류
- 하나의 정점에서 다른 하나의 정점까지 최단 경로를 구하는 문제
- 하나의 정점에서 다른 모든 정점까지의 최단 경로를 구하는 문제
- 각 모든 정점에서 다른 모든 정점까지의 최단 경로를 구하는 문제
응용으로 한 중간 정점을 거쳐서 가는 최단경로 등 다양한 문제의 종류에 적용하여 사용할 수 있다.
알고리즘 종류
하나의 정점에서 다른 모든 정점까지 최단경로를 구하는 문제
-간선의 가중치가 모두 같은 그래프일 경우
- 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
- DP
- 삼성 sw역량테스트
- 운영체제
- Oracle
- Baekjoon
- 분리 집합
- JavaScript
- 완전탐색
- 삼성 sw역량 테스트
- programers
- java
- git
- dfs
- sockjs
- 프로그래머스
- Heap
- 정렬
- 알고리즘
- Spring
- Stomp
- 자바
- 백준
- OS
- websocket
- SWEA
- 최소 스패닝 트리
- 채팅
- 코딩테스트
- MST
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함