본문 바로가기
알고리즘

[알고리즘] 베스트 앨범

by keel_im 2021. 3. 19.
반응형

포인트

  • 해시를 사용해서 적절히 정렬 기준을 만들고 실행할 수 있는가를 보여준다.

🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. 

python

from collections import defaultdict


def solution(genres: list, plays: list) -> list:
    answer = []
    hash = defaultdict(list)
    for genre, play, index in zip(genres, plays, range(len(plays))):
        hash[genre].append([play, index])

    genreSort = sorted(list(hash.keys()), key=lambda x: sum(map(lambda y: y[0], hash[x])), reverse=True)
    # 플레이 합으로 장를 정렬한다.
    for genre in genreSort:
        temp = [index for play, index in sorted(hash[genre], key=lambda x: (x[0], -x[1]), reverse=True)]
        # 플레이 횟수 및 고유 번호 정렬
        answer += temp[:min(len(temp), 2)]
        # 1개 이거나 2개
    return answer
반응형

'알고리즘' 카테고리의 다른 글

[알고리즘] 벽돌 깨기  (0) 2021.03.23
[알고리즘] 이중우선순위큐  (0) 2021.03.19
[알고리즘] 미세먼지 안녕!  (0) 2021.03.18
[알고리즘] 비밀 지도  (0) 2021.03.16
[알고리즘] 크레인 인형뽑기 게임  (0) 2021.03.16

댓글