Binary Journey

[프로그래머스] 순위 본문

프로그래머스/level 3

[프로그래머스] 순위

binaryJournalist 2022. 4. 21. 20:21
반응형

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

 

 

** 시도중

from collections import deque

def solution(n, results):
    win_graph = [ [] for i in range(n + 1) ]
    lose_graph = [ [] for i in range(n + 1) ]
    wn_c = [ 0 for i in range(n + 1) ]
    for result in results:
        win_graph[result[0]].append(result[1])
        lose_graph[result[1]].append(result[0])
    queue = deque()
    queue.append(results[0][0])
    answer = 0
    print(win_graph)
    print(lose_graph)
    while queue:
        now = queue.popleft()
        print(now)
        for loser in win_graph[now]:
            if wn_c[loser] == 0:
                queue.append(loser)
                wn_c[loser] -= 1
    print(wn_c)
    return answer

 

 

 

def solution(n, results):
    wins, loses = {}, {}
    for i in range(1, n+1):
        wins[i], loses[i] = set(), set()      
    
    for i in range(1, n+1):                   
        for r in results:                      
            if r[0] == i:                      
                wins[i].add(r[1])
            if r[1] == i:
                loses[i].add(r[0])
                
        # i번째 사람을 이겼던 사람들에게 i번째 사람이 이겼던 사람 추가
        for winner in loses[i]:              
            wins[winner].update(wins[i])
            
        # i번째 사람에게 진 사람들에게 i번째 사람이 졌던 사람 추가
        for loser in wins[i]:
            loses[loser].update(loses[i]) 
            
    cnt = 0
    for i in range(1, n+1):                   
        if len(wins[i]) + len(loses[i]) == n-1:
            cnt += 1
    return cnt

 

참고: https://bladejun.tistory.com/111

 

프로그래머스 순위 (python, 파이썬)

문제 설명 n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를

bladejun.tistory.com

 

반응형