ps | |
---|---|
링크 | programmers.co.kr/… |
출처 | 프로그래머스 |
문제 번호 | 49191 |
문제명 | 순위 |
레벨 | Level 3 |
분류 |
그래프 |
시간복잡도 | O(V^3) |
인풋사이즈 | V<=100 |
사용한 언어 | Python |
해결날짜 | 2021/07/02 |
태그 |
"""Solution code for "Programmers 49191. 순위".
- Problem link: https://programmers.co.kr/learn/courses/30/lessons/49191
- Solution link: http://www.teferi.net/ps/problems/programmers/49191
"""
def solution(n, results):
higher_rankers = [set() for _ in range(n)]
lower_rankers = [set() for _ in range(n)]
for a, b in results:
higher_rankers[a - 1].add(b - 1)
lower_rankers[b - 1].add(a - 1)
for i in range(n):
for higher_ranker in higher_rankers[i]:
lower_rankers[higher_ranker].update(lower_rankers[i])
for lower_ranker in lower_rankers[i]:
higher_rankers[lower_ranker].update(higher_rankers[i])
answer = sum(1 for i in range(n)
if len(higher_rankers[i]) + len(lower_rankers[i]) == n - 1)
return answer