선발대

[스파르타] 99클럽 2기 코테스터디 25일차 TIL / 순위 본문

스파르타코딩클럽/활동 내용

[스파르타] 99클럽 2기 코테스터디 25일차 TIL / 순위

신선한 스타트 2024. 6. 13. 22:18

프로그래머스: 순위 (링크)

 

순위

 

# 풀이 참고

def solution(n, results):
    answer = 0 # 정답
    graph = [[-1] * (n + 1) for _ in range(n + 1)] # 그래프 데이터

    # 자기 자신과의 승부는 -1로 설정
    for a in range(1, n + 1) :
        for b in range(1, n + 1) :
            if a == b :
                graph[a][b] = -1 
    
    # 1: 이긴 경우, 0: 진 경우
    for i, j in results :
        graph[i][j] = 1
        graph[j][i] = 0 

    # 플로이드-워셜 사용
    for k in range(1, n + 1) :
        for a in range(1, n + 1) :
            for b in range(1, n + 1) :
                if graph[a][k] == graph[k][b] == 1 :
                    graph[a][b] = 1
                    graph[b][a] = graph[k][a] = graph[b][k] = 0
    
    # 정답 확인
    for a in range(1, n + 1) :
        test_graph = graph[a][1 :]
        if test_graph.count(-1) == 1  :
            answer += 1

    return answer

오늘 미들러 풀이 끝!


참고한 블로그: https://cyr0331.tistory.com/m/49

 

[알고리즘] 프로그래머스 - 순위(Python)

코딩테스트 연습 - 순위 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁

cyr0331.tistory.com

 

Comments