[Python] 알고리즘/Silver

[1900] 레슬러 (Python)

-Becca- 2021. 11. 3. 21:01

[문제]

https://www.acmicpc.net/problem/1900

 

1900번: 레슬러

첫째 줄에 선수들의 수 N이 주어진다. 선수들은 1부터 N까지 번호가 붙어 있다. 다음 N개의 줄에는 한 줄에 한 선수의 힘과 그가 가진 마술 링의 힘이 주어진다. 선수 k의 정보는 k+1번째 줄에 주어

www.acmicpc.net


알고리즘 분류는 정렬 입니다.

이긴 횟수를 저장하고, 많이 이긴 순으로 정렬합니다.


[코드]

import sys

N = int(sys.stdin.readline())
player = list()
win = dict()

for i in range(N):
    player.append(list(map(int, sys.stdin.readline().split())))
    win[i] = 0

for i in range(N - 1):
    for j in range(i, N):
        a = player[i][0] + player[j][0] * player[i][1]
        b = player[j][0] + player[i][0] * player[j][1]

        if a > b:
            win[i] += 1
        elif a < b:
            win[j] += 1

win = sorted(win.items(), key=(lambda x: x[1]), reverse=True)
for i in range(len(win)):
    print(win[i][0] + 1)

(pypy3로 제출하여 완벽한 코드는 아닙니다.)