다익스트라 알고리즘

    [Algorithm] 다익스트라(Dijkstra) 알고리즘

    다익스트라 알고리즘이란? 다익스트라 알고리즘은 다이나믹 프로그래밍을 활용한 대표적인 최단 경로 탐색 알고리즘 특정한 하나의 정점에서 다른 모든 정점으로 가는 최단 경로를 알 수 있음 다만 이때 음의 간선을 포함할 수 없는데(비용이 음수일 수 없음!) 현실에선 음의 간선이 존재하지 않기 때문에 다익스트라는 현실 세계에 사용하기 적합하다고 할 수 있다. 다이나믹 프로그래밍인 이유는 '최단 거리는 여러 개의 최단 거리로 이루어져있기 때문'. 즉, 최단 거리를 구할 때 이전까지 구했던 최단 거리 정보를 사용하게 된다. 알고리즘 출발 노드를 설정 출발 노드를 기준으로 각 노드까지 가는 비용을 최소 비용으로 저장하고 출발 노드를 방문한 노드로 체크 현재 방문한 노드들과 연결되어 있고 방문하지 않은 노드 중에서 가장..