728x90
솔루션
from collections import defaultdict
def solution(n, results):
answer = 0
win,lose =defaultdict(set),defaultdict(set)
# win:key[승리자] values[패배자] / lose:key[패배자] values[승리자]
for winner,loser in results:
win[winner].add(loser)
lose[loser].add(winner)
for i in range(1,n+1):
# i에게 진 사람은 i를 이긴 사람에게 진다.
# i에게 이긴 사람은 i에게 진 사람을 이긴다.
for loser in win[i]:
lose[loser].update(lose[i])
for winner in lose[i]:
win[winner].update(win[i])
# 승패 결과가 본인을 제외한 모든 이와의 경기에서 확정날 경우 순위가 결정
for i in range(1,n+1):
if len(win[i])+len(lose[i]) == n-1:
answer+=1
return answer
728x90
'알고리즘' 카테고리의 다른 글
[멀쩡한 사각형 - python] 프로그래머스 Lv2 (0) | 2021.06.21 |
---|---|
[python 스택] 짝지어 제거하기 - 프로그래머스 (0) | 2021.06.18 |
[python graph] 그래프 - 가장 먼 노드 LV.3 프로그래머스 (0) | 2021.06.07 |
[python 그리디(탐욕법)] 구명보트 - 프로그래머스 (0) | 2021.06.04 |
[python 그리드] 큰 수 만들기 -프로그래머스 (0) | 2021.06.03 |