SOLUTION INFO
C++ · main.cpp
class Solution {
public:
vector<bool> checkIfPrerequisite(int N, vector<vector<int>>& prerequisites, vector<vector<int>>& queries) {
vector<vector<int>> DP(N, vector<int>(N));
for(int i = 0; i < prerequisites.size(); ++i) {
int u = prerequisites[i][0];
int v = prerequisites[i][1];
DP[u][v] = 1;
}
for(int k = 0; k < N; ++k) {
for(int i = 0; i < N; ++i) {
for(int j = 0; j < N; ++j) {
DP[i][j] |= DP[i][k] & DP[k][j];
}
}
}
vector<bool> answer(queries.size());
for(int i = 0; i < queries.size(); ++i) {
int u = queries[i][0];
int v = queries[i][1];
answer[i] = bool(DP[u][v]);
}
return answer;
}
};
SOLUTION DESCRIPTION
풀이 설명
등록된 풀이 설명이 없습니다.