본문 바로가기

그래프 탐색2

깊이 우선 탐색 DFS 알고리즘 - 그래프 탐색 깊이 우선 탐색(DFS)으로 그래프를 탐색해보자. 그래프 탐색 하나의 정점으로 시작하여, 차례대로 모든 정점을 한 번씩 방문하는 것이다. 특정 도시에서 다른 도시로 갈 수 있는지 없는지, 전자 회로에서 특정 단자와 단자가 서로 연결되어 있는지 알아볼 수 있다. 깊이 우선 탐색 DFS DFS는 탐색에서 깊은 것을 우선적으로 탐색하는 알고리즘이다. 너비 우선 탐색 (BFS)는 큐(queue)가 사용되지만, 깊이 우선 탐색 (DFS)는 스택(stack)이 사용된다. 사실 컴퓨터는 함수 호출을 스택의 원리를 사용하기 때문에, 재귀를 사용하면 DFS를 구현할 수 있다. 모든 노드를 방문하고자 하는 경우에 이 방법을 선택한다. 모든 경우의 수를 보기 좋다! BFS보다는 속도가 느리다. 어떤 노드를 방문했는지 검사하.. 2021. 9. 11.
플로이드 와샬 Floyd Warshall 알고리즘 다이스트라(Dijkstra) : 하나의 점에서 출발했을 때 다른 모든 정점으로의 최단 경로(최소비용)를 구하는 알고리즘. 플로이드 와샬 : 모든 정점에서 모든 정점으로의 최단 경로(최소비용)를 구하고 싶을 때 사용한다. 거쳐가는 정점을 기준으로 최단 거리를 구하는 것 문제를 직접 풀어보며 알아보자. N개의 도시가 주어지고, 각 도시들을 연결하는 도로와 해당 도로를 통행하는 비용이 주어질 때, 모든 도시에서 모든 도시로 이동하는데 쓰이는 비용의 최소값을 구하라. ✔️ 입력 - n : 도시의 수 (N 정점 5 일 때 최소비용을 고려하면 자동으로 정점 3을 거치게 된다는 것이다. 이를 javascript 코드로 구현하면 다음과 같다. function solution(n, edges) { let answer =.. 2021. 9. 9.