반응형
https://leetcode.com/problems/find-the-town-judge/description/
전수조사 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
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;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - LeetCode (easy) 1385. Find the Distance Value Between Two Arrays (0) | 2024.03.04 |
---|---|
(C++) - LeetCode (easy) 1380. Lucky Numbers in a Matrix (0) | 2024.03.01 |
(C++) - LeetCode (easy) 812. Largest Triangle Area (0) | 2023.07.18 |
(C++) - LeetCode (easy) 804. Unique Morse Code Words (0) | 2023.07.14 |
(C++) - LeetCode (easy) 796. Rotate String (0) | 2023.07.13 |