[LeetCode] 506. Relative Ranks

원숭2·2022년 1월 28일
0

LeetCode

목록 보기
20/51

문제

풀이

  1. 최대 힙을 이용하기 위해 score를 전부 음수로 바꾼 tmp를 만들어 준 후, heapify 함수를 통해 tmp를 힙으로 만듦.
  2. tmp가 빌 때 까지 heappop을 해주면서 등수에 맞게 score 값을 변경해 줌.

코드

import heapq

class Solution:
    def findRelativeRanks(self, score: List[int]) -> List[str]:
        
        tmp = list(map(lambda x : -x, score))
        heapq.heapify(tmp)
        
        count = 0
        while len(tmp) != 0 :
            res = -(heapq.heappop(tmp))
            if count == 0 :
                score[score.index(res)] = 'Gold Medal'
            elif count == 1 :
                score[score.index(res)] = 'Silver Medal'
            elif count == 2 :
                score[score.index(res)] = 'Bronze Medal'
            else :
                score[score.index(res)] = str(count+1)
            
            count += 1
        
        return score

0개의 댓글