다익스트라
1504번: 특정한 최단 경로 (BOJ C/C++)
1504번: 특정한 최단 경로 사용 언어: C++ 풀이 //1번 정점에서 시작, n번 정점으로 이동. //시작 정점이 주어지고 최단경로이므로 다익스트라 알고리즘을 활용하면 된다. //주어진 두 정점을 반드시 거쳐야한다. 만약 a, b 정점을 거쳐야한다면 // 1 -> a -> b -> n or 1 -> b -> a -> n 두 가지 경우만 구하면 된다. // 그러면 a와 b 각각에서 다익스트라를 돌리면 모든 값을 구할 수 있다. -> 다익스트라 두 번만 돌리면 된다. #include #include #include #include #define INF 1e9 using namespace std; int n, e; //n: 정점 개수, e: 간선 개수 int v1, v2; //거쳐야하는 정점 v1, v2 ..
1753번: 최단경로 (BOJ C/C++)
1753번: 최단경로 사용 언어: C++ 풀이 //우선 순위 큐를 이용한 다익스트라 알고리즘으로 최단경로 구하기 #include #include #include using namespace std; #define INF 1e9 int v, e, start; //V: 정점의 개수, E: 간선의 개수, start: 시작 정점의 위치 vector arr[20001]; //각 노드가 연결된 노드 정보 저장 //1번째 노드가 3번째 노드에 연결되어있다를 표현하려면 arr[1] int dist[20001]; //최단 거리 정보 저장 void dijkstra(int start) { priority_queue pq; // pq.push({0,start}); dist[start] = 0; while(!pq.empty()..