Find the Town Judge

ㅋㅋ·2023년 1월 23일
0

알고리즘-leetcode

목록 보기
96/135

마을의 인원수 n과 인덱스 기준으로 [Ai,BiA_i, B_i]와 같이 이루어진 2차원 정수형 벡터를 받는다.

이 데이터는 AiA_i번째 사람은 BiB_i번째 사람을 믿는다는 뜻이며,

문제는 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;
    }
};

0개의 댓글