programmers.co.kr/learn/courses/30/lessons/49191
어떻게 풀어야할지 생각을 많이 해야했던 문제..ㅠ
def solution(n, results):
answer=0
win={x:set() for x in range(n+1)}
lose={x:set() for x in range(n+1)}
for result in results:
win[result[0]].add(result[1])
lose[result[1]].add(result[0])
for i in range(1, n+1):
# i를 이긴 사람들 -> i가 이긴 사람들한테도 이길거야
for winner in lose[i]:
win[winner].update(win[i])
# i에게 진 사람들 -> i를 이긴 사람들한테도 질거야
for loser in win[i]:
lose[loser].update(lose[i])
for i in range(1, n+1):
if len(win[i])+len(lose[i])==n-1:
answer+=1
return answer
'코딩 테스트 > 문제 풀기' 카테고리의 다른 글
[프로그래머스] 불량 사용자 (0) | 2021.05.08 |
---|---|
[프로그래머스] 등굣길 (0) | 2021.05.08 |
[프로그래머스] 입국심사 (0) | 2021.05.02 |
[프로그래머스] 이중우선순위큐 (0) | 2021.05.02 |
[프로그래머스] 섬 연결하기 (0) | 2021.04.30 |
댓글