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

+ Recent posts