728x90
https://programmers.co.kr/learn/courses/30/lessons/49191
코드 :
from collections import defaultdict
def solution(n, results):
answer = 0
win_graph = defaultdict(set) # 이긴 선수
lose_graph = defaultdict(set) # 진 선수
for winner, loser in results :
win_graph[loser].add(winner)
lose_graph[winner].add(loser)
for i in range(1,n+1) :
for winner in win_graph[i] : # i를 이긴 사람들은
lose_graph[winner].update(lose_graph[i]) #i에게 진 사람들에게도 이긴다
for loser in lose_graph[i] : # i에게 진 사람들은
win_graph[loser].update(win_graph[i]) # # i를 이긴 사람들에게도 진다.
for i in range(1,n+1) :
if len(win_graph[i]) + len(lose_graph[i]) == n-1 :
answer+=1
return answer
dict를 value를 기준으로 이름을 지었다.
win_graph는 key에게 이긴 친구들이 value로 있는 dict이다.
lose_grpah는 key에게 진 친구들이 value로 있는 dict이다.
i를 이긴 친구들은 i에게 진 친구들에게도 이기며
i에게 진 친구들은 i를 이긴 친구들에게도 진다.
참고 블로그 :
복습 :
✅ 20220621
✅ 20220622
✅ 20220623
✅ 20220624
✅ 20220625
✅ 20220626
반응형
'알고리즘 > 프로그래머스문제풀이' 카테고리의 다른 글
[Python/프로그래머스]신규아이디추천_구현 (0) | 2022.06.28 |
---|---|
[Python/프로그래머스]신고 결과 받기 (0) | 2022.06.28 |
[Python/프로그래머스] 소수 찾기_완탐 (0) | 2022.06.19 |
[Python/프로그래머스]모의고사_완탐 (0) | 2022.06.19 |
[Python/프로그래머스]단속 카메라_Greedy(그리디) (0) | 2022.06.19 |