선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성해주세요.
DFS
def solution(n, results):
maps = [ [0] * (n) for _ in range(n) ]
graph = [[] for _ in range(n)]
for s, e in results:
graph[s-1].append(e-1)
for i in range(0, n):
visited = [False] * n
dfs(i, i, maps, graph, visited)
answer = 0
for i in maps:
if 0 not in i:
answer += 1
return answer
# start: 시작점, node: 현재 선수 번호
def dfs(start, node, maps, results, visited):
visited[node] = True
maps[start][node] = 1
maps[node][start] = -1
for i in results[node]:
if not visited[i]:
dfs(start, i, maps, results, visited)