HackerRank Sorting Comparator

x·2021년 5월 4일
0

problem-solving

목록 보기
14/18

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)

0개의 댓글