[C++] 다익스트라 알고리즘

다곰·2023년 10월 13일
0

가중치가 있는 그래프에서 특정 노드에서 다른 노드까지의 최소 비용을 구하는 알고리즘

  1. 가중치 그래프를 vector<pair<int,int>> 형태로 (a, b) 까지 거리가 100 이라면 v[a]={b, 100} 형식으로 양방향 그래프 저장
  2. 출발지부터 시작해서 각 노드까지의 거리를 저장
    1) 최소 비용을 저장하기 위한 배열에 자기자신-자기자신 을 제외한 위치는 MAX 값으로 초기화
    2) 출발지에서 현재 노드까지의 거리를 현재까지의 비용 기준 오름차순 우선순위 큐에 저장해가며 탐색
    ➡️ 처음에는 0, 출발지 를 push
    3) 현재 노드에서 갈 수 있는 다음 노드 기존 최소 비용 > 현재 노드까지의 비용 + 현재-다음 간선의 가중치 이면 비용을 갱신
profile
다교미의 불꽃 에러 정복기

0개의 댓글