마을의 인원수 n과 인덱스 기준으로 []와 같이 이루어진 2차원 정수형 벡터를 받는다.
이 데이터는 번째 사람은 번째 사람을 믿는다는 뜻이며,
문제는 Town Judge를 찾아 인덱스를 반환해야 한다.
Town Judge의 조건은 다른 모든 사람들이 믿는 사람이지만 자신은 다른 사람을 아무도 믿지않는 사람이다.
만약 Town Judge의 조건을 만족하는 사람이 존재하지 않으면 -1을 반환하면 된다.
class Solution {
public:
int findJudge(int n, vector<vector<int>>& trust) {
vector<vector<int>> graph(n);
unordered_set<int> hash{};
int length = trust.size();
for (int i = 0; i < length; i++)
{
graph[trust[i][1] - 1].push_back(trust[i][0] - 1);
hash.insert(trust[i][0] - 1);
}
int judge{-1};
for (int i = 0; i < n; i++)
{
if (graph[i].size() == n - 1 && hash.count(i) == 0)
{
judge = i + 1;
break;
}
}
return judge;
}
};