최단 경로
8. [Algorithm] 플로이드 워셜 알고리즘 (최단 경로)
8. [Algorithm] 플로이드 워셜 알고리즘 (최단 경로)
2023.03.24플로이드 워셜 알고리즘 (Floyd-Warshall Algorithm) 지난 시간에 포스팅 했던 다익스트라 알고리즘의 경우, 한 지점에서 다른 특정 지점까지의 최단 경로를 구하는 알고리즘이다. 모든 지점에서 다른 모든 지점까지의 최단 경로를 모두 구해야 하는 경우에는 어떻게 해야할까? 바로 플로이드 워셜 알고리즘을 사용하면 된다. '모든 지점에서 다른 모든 지점까지의 최단 경로를 모두 구해야 하는 경우'에 사용할 수 있는 알고리즘 다익스트라의 경우 단계마다 최단 거리를 가지는 노드를 하나씩 반복적으로 선택한다. 이후 해당 노드를 거쳐가는 경로를 확인하며 최단 거리 테이블을 갱신하는 방식으로 동작한다. ←→ 플로이드 워셜 알고리즘 또한 단계마다 '거쳐 가는 노드'를 기준으로 알고리즘을 수행한다. 하지만, ..
7. [Algorithm] 다익스트라 알고리즘 (최단 경로)
7. [Algorithm] 다익스트라 알고리즘 (최단 경로)
2023.03.24다익스트라 알고리즘 최단 경로 알고리즘은 말 그대로 가장 짧은 경로를 찾는 알고리즘이다. 최단 경로 알고리즘 유형에는 다양한 종류가 있다. 대표적으로 다익스트라 최단 경로 알고리즘 플로이드 워셜 벨만 포드 알고리즘 이렇게 3가지이다. 이번 글에서는 다익스트라 알고리즘 에 대해서 알아보도록 하겠다. 다익스트라 알고리즘 (Dijkstra Algorithm) 다익스트라 알고리즘은 그래프에서 여러 개이 노드가 있을 때, 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘 다익스트라는 매번 '가장 비용이 적은 노드'를 선택해서 임의의 과정을 반복하는데, 이 때문에 기본적으로 그리디 알고리즘으로 분류된다. 다익스트라 알고리즘의 원리 출발 노드를 설정 최단 거리 테이블을 초기화 방문하지 ..
[이코테] Chapter9-2 / 미래 도시(플로이드 워셜 알고리즘)
[이코테] Chapter9-2 / 미래 도시(플로이드 워셜 알고리즘)
2023.01.04미래 도시 방문 판매원 A는 많은 회사가 모여 있는 공중 미래 도시에 있다. 공중 미래 도시에는 1번부터 N번 까지의 회사가 있는데 특정 회사끼리는 서로 도로를 통해 연결되어 있다. 방문 판매원 A는 현재 1번 회사에 위치해 있으며, X번 회사에 방문해 물건을 판매하고자 한다. 공중 미래 도시에서 특정 회사에 도착하기 위한 방법은 회사끼리 연결되어 있는 도로를 이용하는 방법이 유일하다. 또한 연결된 2개의 회사는 양방향으로 이동할 수 있다. 공중 미래 도시에서의 도로는 마하의 속도로 사람을 이동시켜 주기 때문에 특정 회사와 다른 회사가 도로로 연결되어 있다면, 정확히 1만큼의 시간으로 이동할 수 있다. 또한 오늘 방문 판매원 A는 기대하던 소개팅에도 참석하고자 한다. 소개팅의 상대는 K번 회사에 존재한다..
[이코테] Chapter9-1 / 최단 경로(다익스트라, 플루이드 워셜 알고리즘)
[이코테] Chapter9-1 / 최단 경로(다익스트라, 플루이드 워셜 알고리즘)
2023.01.03가장 빠르게 도달하는 방법 최단 경로(Shrotest Path) 알고리즘은 말 그대로 가장 짧은 경로를 찾는 알고리즘이다. 그래서 '길 찾기' 문제 라고도 불린다. 최단 경로 알고리즘 유형에는 다양한 종류가 있는데 상황에 맞는 효율적인 알고리즘이 이미 정립되어 있다. 예를 들어 '한 지점에서 다른 특정 지점까지의 최단 경로를 구해야 하는 경우', '모든 지점에서 다른 모든 지점까지의 최단 경로를 모두 구해야 하는 경우' 등의 다양한 사례가 존재한다.이런 사례에 맞는 알고리즘을 알고 있다면 문제를 좀 더 쉽게 풀 수 있다. 최단 경로 문제는 보통 그래프를 이용해 표현하는데 각 지점은 그래프에서 '노드'로 표현되고, 지점간 연결된 도로는 그래프에서 '간선'으로 표현된다. 또한 실제 코딩 테스트에서는 최단 경..