-
순위코딩 테스트/Level 3 2020. 9. 30. 18:28반응형
순위
그래프
986명 완료플로이드 와샬 알고리듬을 이용하면 되지만..
족보 없는 방법(야매)으로도 풀 수 있다..n번 선수,
n번 선수에게 이긴 선수들,
n번 선수에게 진 선수들,
이 셋의 합이 n이 되면 ~!
n번은 순서를 알 수 있는 선수.그림을 그려보면 직관적이다.
다만 어떻게 빠짐없이
이긴 선수와 진 선수를 정리할 수 있을지가 관건..
.....https://programmers.co.kr/learn/courses/30/lessons/49191
def solution(n, results): winner_loser, loser_winner = {i + 1: set() for i in range(n)}, {i + 1: set() for i in range(n)} for winner, loser in results: winner_loser[winner].add(loser) loser_winner[loser].add(winner) for i in range(1, n + 1): for winner in winner_loser[i]: for loser in loser_winner[i]: winner_loser[loser].add(winner) for loser in loser_winner[i]: for winner in winner_loser[i]: loser_winner[winner].add(loser) return sum([1 for i in range(1, n + 1) if len(winner_loser[i]) + len(loser_winner[i]) == n - 1])
반응형