반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 997 | Find the Town Judge | Python 본문
728x90
반응형
문제 링크: https://leetcode.com/problems/find-the-town-judge/
문제
In a town, there are n people labeled from 1 to n. There is a rumor that one of these people is secretly the town judge.
If the town judge exists, then:
- The town judge trusts nobody.
- Everybody (except for the town judge) trusts the town judge.
- There is exactly one person that satisfies properties 1 and 2.
You are given an array trust where trust[i] = [$a_i, b_i$] representing that the person labeled $a_i$ trusts the person labeled $b_i$.
Return the label of the town judge if the town judge exists and can be identified, or return -1 otherwise.
조건
- 1 <= n <= 1000
- 0 <= trust.length <= 104
- trust[i].length == 2
- All the pairs of trust are unique.
- ai != bi
- 1 <= ai, bi <= n
내 풀이
먼저 trust 배열이 없을 경우, n=1이면 1을 리턴하고 그 외의 경우는 -1이 리턴된다.
trust배열을 이용해 [$a_i, b_i$]가 있을 때 $b_i$를 신뢰하는 사람들을 모아둔 배열(rT)를 만든다.
그 배열에서 rT[i]=n-1일 때, 모든 사람이 i를 신뢰한다.
이 때, i가 신뢰하는 다른 사람이 존재한다면 -1을 리턴하고, 그렇지 않다면 i를 리턴하면 된다.
rT[i]=n-1인 i가 존재하지 않는다면 -1을 리턴한다.
코드
class Solution:
def findJudge(self, n: int, trust: List[List[int]]) -> int:
if not trust:
if n == 1:
return 1
else:
return -1
rT = [[] for _ in range(n+1)]
for a, b in trust:
rT[b].append(a)
for i in range(1, n+1):
if len(rT[i]) == n-1:
for t in range(1, n+1):
if i in rT[t]:
return -1
return i
return -1
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[LeetCode] 131 | Palindrome Partitioning | Python (0) | 2022.01.05 |
---|---|
[LeetCode] 1009 | Complement of Base 10 Integer | Python (0) | 2022.01.04 |
[LeetCode] 1015 | Smallest Integer Divisible by K | Python (0) | 2021.12.30 |
[LeetCode] 116 | Populating Next Right Pointers in Each Node | Python (0) | 2021.12.29 |
[백준] 2638번 | 치즈 | (0) | 2021.12.27 |
Comments