컴공생의 다이어리

[프로그래머스] 베스트앨범 - 파이썬(Python) 본문

Development/Algorithm & Coding Test

[프로그래머스] 베스트앨범 - 파이썬(Python)

컴공 K 2022. 5. 7. 00:01

[프로그래머스] 베스트앨범 - 파이썬(Python)

 

 

 

from collections import defaultdict

def solution(genres, plays):
    answer = []
    G = defaultdict(int)
    detail = defaultdict(list)
    for idx, [g, p] in enumerate(zip(genres, plays)):
        G[g] += p
        detail[g].append((p, idx))
    for g, _ in sorted(G.items(), key=lambda x: -x[1]):
        for _, i in sorted(detail[g], key=lambda x: -x[0])[:2]:
            answer.append(i)
    return answer

혹은

from collections import defaultdict

def solution(genres, plays):
    answer = []
    G = defaultdict(list)
    for idx, [g, p] in enumerate(zip(genres, plays)):
        G[g].append((idx, p))
    order = sorted(G.items(), key=lambda x: sum(dict(x[1]).values()), reverse=True)
    for _, L in order:
        for i, _ in sorted(L, key=lambda x: -x[1])[:2]:
            answer.append(i)
    return answer

 

 

 

 

 

https://programmers.co.kr/learn/courses/30/lessons/42579

 

코딩테스트 연습 - 베스트앨범

스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가

programmers.co.kr

 

728x90
반응형
Comments