본문 바로가기

Algorithm/Brute Force

(C++) - LeetCode (easy) 997. Find the Town Judge

반응형

https://leetcode.com/problems/find-the-town-judge/description/

 

LeetCode - The World's Leading Online Programming Learning Platform

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

전수조사 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

i번째 사람을 믿는 사람 수를 세기 위한 vector trusted와 i번째가 믿는 사람이 존재하는지 여부를 저장할 vector isTrust를 선언 후 index를 1부터 시작하기 위해 n+1만큼 만들어 0으로 초기화합니다.

📔 풀이과정

1. trust의 모든 원소를 순회하며 믿는 사람과 믿음 받는 사람 정보를 isTrust와 trusted에 각각 저장해줍니다.

2. 1 ~ n만큼 순회하며 자기 자신 외에 모두 자신을 믿으며 믿는 사람이 없는 경우 i값을 반환합니다.

3. 기본적으로 -1을 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    int findJudge(int n, vector<vector<int>>& trust) {
        vector <int> trusted(n+1,0);
        vector <int> isTrust(n+1,0);

        for(auto t : trust) {
            trusted[t[1]]++;
            isTrust[t[0]]++;
        }

        for(int i = 1; i <= n; i++) {
            if(trusted[i] == n-1 && !isTrust[i]) return i;
        }

        return -1;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.