Code/알고리즘 2

[알고리즘] 플로이드-워셜 알고리즘

플로이드-워셜 알고리즘(Floyd-Warshall Algorithm) 간선 weight가 음수 또는 양수인 그래프에서 최단 경로를 찾는데 사용하는 알고리즘이 알고리즘을 한 번 수행하면 vertex 와 vertex 를 잇는 모든 경우의 수에 대한 최단 거리를 찾을 수 있다. 불필요한 글 더 적지 않고 작성한 Python 알고리즘 코드 분석하겠다.디테일한 문제 상황은 백준의 11404번을 참조하기 바란다. 11404번: 플로이드첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가www.acmicpc.net 1부터 n까지의 node가 존재하고하나의 노드에서 다른 노드로 갈..

Code/알고리즘 2023.09.21

[알고리즘] BFS / DFS 분석 및 비교 + Python 구현

그래프에서 노드를 탐색하는 두 알고리즘 DFS와 BFS에 대해 정리하고자 글을 작성한다.BFS(Breadth-First Search) 요약BFS는 하나의 node에서 인접한 node를 Queue에 저장시켜놓는다.그리고 더 이상 방문 가능한 인접 node가 없을 때 FIFO(First In First Out)를 통해 하나의 인접 node를 pop 시켜 정점을 이동한다.해당 node에서 또 인접한 node를 Queue에 저장시켜, 결과적으로 Queue에 더 이상 저장된 node가 없을 때 까지 Searching하는 방식이 BFS이다.하나의 Node에서부터 방문 가능한 주변 Node들을 모두 찾아나가면서 조사하는 것이다. DFS(Depth-First Search) 요약DFS는 재귀함수를 이용하여 하나의 Nod..

Code/알고리즘 2023.08.11
728x90
반응형