반응형
https://leetcode.com/problems/find-champion-ii
graph(DAG) 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 각 node별 진입하는 노드의 개수 in_degree_count를 선언 후 n-1까지 0으로 채워 초기화합니다.
2. edges를 돌며 e[1]에 진입하는 in_degree_count를 세줍니다.
3. 정답 변수 champion, champion 수 champion_count를 선언 후 각각 -1, 0으로 초기화합니다.
📔 풀이과정
n-1까지 for loop를 수행하며 다음을 진행합니다.1. 각 node별 진입 노드가 존재여부를 파악합니다. 존재하지 않다면 champion이므로 champion을 현 node로 갱신 후 champion_count를 1더해줍니다.
2. chapion_count가 1초과되었다면 여러 챔피언이므로 -1을 바로 반환합니다.
📔 정답 출력 | 반환
champion을 반환합니다.
📕 Code
📔 Python3
class Solution:
def findChampion(self, n: int, edges: List[List[int]]) -> int:
in_degree_count = [0] * n
for e in edges:
in_degree_count[e[1]] += 1
champion = -1
champion_count = 0
for node in range(n):
if in_degree_count[node] == 0:
champion_count += 1
champion = node
if champion_count > 1:
return -1
return champion
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > 자료구조' 카테고리의 다른 글
(Python3) - LeetCode (Medium) : 1792. Maximum Average Pass Ratio (1) | 2024.12.15 |
---|---|
(Python3) - LeetCode (Medium) : 2593. Find Score of an Array After Marking All Elements (0) | 2024.12.13 |
(Python3) - 프로그래머스(연습문제): 추억 점수 (2) | 2024.11.09 |
(Python3) - 프로그래머스(코딩테스트 입문) : 한 번만 등장한 문자 (0) | 2024.10.30 |
(Python3) - 프로그래머스(코딩테스트 입문) : 인덱스 바꾸기 (0) | 2024.10.30 |