[BOJ] 합승 택시 요금
Date:
[BOJ] 합승 택시 요금
Problem URL : 합승 택시 요금
#include <vector>
using namespace std;
int adj[201][201];
int solution(int n, int s, int a, int b, vector<vector<int>> fares) {
int answer = 0;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
adj[i][j] = 100000 * 200; // [1]
for (int i = 1; i <= n; i++) adj[i][i] = 0;
for (auto fare : fares) {
adj[fare[0]][fare[1]] = fare[2];
adj[fare[1]][fare[0]] = fare[2];
}
for (int mid = 1; mid <= n; mid++) // [2]
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
adj[i][j] = min(adj[i][j], adj[i][mid] + adj[mid][j]);
answer = 1e9;
for (int i = 1; i <= n; i++)
answer = min(answer, adj[s][i] + adj[i][a] + adj[i][b]);
return answer;
}
Comments
[1] 충분히 큰 수로 초기화해줘야 한다.
[2] mid가 가장 바깥 for문인 거 항상 기억하도록 하자!!
댓글