1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
def solution(n, results):
win = {x:set() for x in range(1, n+1)}
lose = {x:set() for x in range(1, n+1)}
for winner, loser in results:
win[winner].add(loser)
lose[loser].add(winner)
for i in range(1, n+1):
for winner in lose[i]:
win[winner].update(win[i])
for loser in win[i]:
lose[loser].update(lose[i])
answer = 0
for i in range(1, n+1):
if len(win[i]) + len(lose[i]) == n-1:
answer += 1
return answer
|
cs |
이거 이상으로 좋은 알고리즘이 안떠오른다.....
'컴퓨터 > 문제 풀기' 카테고리의 다른 글
[프로그래머스] 가장 먼 노드 (0) | 2020.03.17 |
---|---|
에라토스테네스의 채(c++,python)과 파이썬의 split을 c++로 구현하기 (0) | 2020.02.14 |
c++ 생성자에는 초기값 대입만 쓰자 (0) | 2020.02.04 |
백준 8741번 이진수 합 (0) | 2019.07.29 |
백준 8595번 히든넘버 (0) | 2019.05.27 |