Python Graph(Floyd-Warshall), BFS, DFS

Python heap

Python Dynamic Programming 예제

다익스트라의 경우 단계마다 최단 거리를 가지는 노드를 하나씩 반복적으로 선택한다. 이후 해당 노드를 거쳐가는 경로를 확인하며 최단 거리 테이블을 갱신하는 방식으로 동작한다.<--> 플로이드 워셜 알고리즘 또한 단계마다 '거쳐 가는 노드'를 기준으로 알고리즘을 수행한다. 하지만, 매 단계마다 방문하지 않은 노드 중에서 최단 거리를 갖는 노드를 찾을 필요가 없다!

위상 정렬

이분 매칭 (DFS)

브루트 포스 Brute force 알고리즘

Knuth의 Algorithm X

Dancing Links (DLX)

Algorithm X와 DLX의 결합: 스도쿠 문제 해결

백트래킹