컴공생의 다이어리
[프로그래머스] 베스트앨범 - 파이썬(Python) 본문
728x90
[프로그래머스] 베스트앨범 - 파이썬(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
반응형
'Development > Algorithm & Coding Test' 카테고리의 다른 글
[프로그래머스] 프린터 - 파이썬(Python) (0) | 2022.05.09 |
---|---|
[프로그래머스] 기능개발 - 파이썬(Python) (0) | 2022.05.08 |
[프로그래머스] 위장 - 파이썬(Python) (0) | 2022.05.06 |
[프로그래머스] 전화번호 목록 - 파이썬(Python) (0) | 2022.05.05 |
[프로그래머스] 완주하지 못한 선수 - 파이썬(Python) (0) | 2022.05.04 |