Player
라는 클래스에 name, score이 초기화되도록 __init__
메서드를 채워준다. comparator
에서는 입력된 a, b 인스턴스의 속성인 name, score를 비교해서 정렬해준다. score는 내림차순, name은 오름차순이다.
from functools import cmp_to_key
class Player:
def __init__(self, name: str, score: int):
self.name = name
self.score = score
def comparator(a, b):
if a.score < b.score:
return 1
elif a.score > b.score:
return -1
elif a.score == b.score and a.name == b.name:
return 0
else:
if a.name < b.name:
return -1
elif a.name > b.name:
return 1
n = int(input())
data = []
for i in range(n):
name, score = input().split()
score = int(score)
player = Player(name=name, score=score)
data.append(player)
data = sorted(data, key=cmp_to_key(Player.comparator))
for i in data:
print(i.name, i.score)