프로그래머스/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
반응형