티스토리 뷰

알고리즘 공부/고득점kit

[그래프] 순위

에러정리 2021. 9. 21. 17:58
INF = int(1e9)
def solution(n, results):
    answer = 0
    graph = [[INF] * (n+1) for _ in range(n+1)]
    for a,b in results:
        graph[a][b] = 1
    #자기자신으로 가는경우 0
    for a in range(1, n+1):
        for b in range(1,n+1):
            if a == b:
                graph[a][b] = 0
    #해당 노드로 오거나 갈수있으면 순위비교가 가능한것
    for k in range(1,n+1):
        for a in range(1,n+1):
            for b in range(1,n+1):
                graph[a][b] = min(graph[a][k]+graph[k][b],graph[a][b])
    count = 0
    for i in range(1,n+1):
        count = 0
        for j in range(1, n+1):
            #해당 노드로 오거나 갈 수 있으면 순위비교 가능
            if graph[i][j] != INF or graph[j][i] != INF:
                count += 1
        if count == n:
            answer += 1

    return answer

print(solution(5, [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]]))

 

'알고리즘 공부 > 고득점kit' 카테고리의 다른 글

[정렬] H-Index  (0) 2021.09.22
[정렬] k번째 수  (0) 2021.09.22
[그래프] 가장 먼 노드  (0) 2021.09.21
[해시]전화번호 목록  (0) 2021.09.03
[해시] 완주하지 못한 선수  (0) 2021.09.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함