음과 같은 그래프가 있을 경우 파이썬으로 표현한 것
저번에 코드블럭에다가 소스코드를 써봤는데 가독성이 넘 안좋은 것 같아서 이번에는 캡처를 이용함
생각보다 단순하다.. 설명을 붙이자면
distances 는 시작점에서 각 노드까지 최소 거리를 저장한 배열.
처음에는 시작점을 제외하고 나머지는 무한으로 설정한다.
queue 는 시작점에서 어떤 노드까지 길이를 담아놓은 배열인데, 다뤄야 할 목록이라고 생각하면 됨.
작업할 게 없을 때까지 반복한다.
현재 노드와 길이를 뽑는다.
만약 최단 거리가 있는데 그것보다 길이가 긴 경로를 가진 노드를 꺼냈을 경우 다음 노드로 스킵
내가 뽑은 노드의 주변을 탐색한다.
주변 노드까지 길이를 distance로 저장
만약 이 distance가 기존에 있던 최단거리릴 갱신했을 경우 덮어씌운다.
그리고 덮어씌운 노드를 queue에 저장한다. 이렇게 해서 경로 길이를 누적시킬 수 있다.
이렇게 하면 시작점에서 각 노드까지 최소거리를 구할 수 있다.
'컴퓨터공학 > 자료구조&알고리즘' 카테고리의 다른 글
코딩테스트> 고급 정렬 알고리즘 연습문제 (0) | 2021.05.05 |
---|---|
코딩테스트> 기본 자료 구조와 정렬 연습문제 (0) | 2021.04.16 |
알고리즘> 고급> 분할정복법> 퀵정렬 (0) | 2021.03.12 |
알고리즘> 그래프> 너비 우선 탐색(BFS) / 깊이 우선 탐색(DFS) (0) | 2021.03.12 |
알고리즘> 탐욕 알고리즘 (0) | 2021.03.12 |