나의 개발일지

[프로그래머스] Lv.3 순위 [Python, 파이썬] 본문

프로그래머스

[프로그래머스] Lv.3 순위 [Python, 파이썬]

YoonJuHan 2023. 7. 10. 12:23
def solution(n, results):
    matrix = [[None for _ in range(n)] for _ in range(n)]
    for win, lose in results:   # 승 패 체크
        matrix[win-1][lose-1] = True    # 이겼다
        matrix[lose-1][win-1] = False   # 졌다

    # j -> k 를 갈 때  j -> i -> k 로 갈 수 있나?
    for i in range(n):
        for j in range(n):
            if matrix[j][i] == None:    # j, i 연결이 없으면 넘어가
                    continue
            for k in range(n):
                if matrix[j][i] == matrix[i][k]:    #
                    matrix[j][k] = matrix[j][i]
                    matrix[k][j] = not matrix[j][i]
                    
    answer = 0

    # None이 하나면 정답 올려 (모든 노드와 비교 완료된 노드)
    for i in matrix:
        if i.count(None) == 1:  
            answer += 1

    return answer
Comments