https://school.programmers.co.kr/learn/courses/30/lessons/42579?language=python3#
장르별 2개씩
우선순위
1. 많이 재생된 장르
2. 많이 재생된 노래
3. 고유 번호 낮은 순
def solution(genres, plays):
answer = []
genre_dict = {}
for idx, genre in enumerate(genres):
if genre_dict.get(genre) is None:
genre_dict[genre] = {
"count": plays[idx],
"details": {idx: plays[idx]}
}
else:
genre_dict[genre]["count"] += plays[idx]
genre_dict[genre]["details"][idx] = plays[idx]
for details_info in sorted(genre_dict.values(), key=lambda x: x["count"], reverse=True):
for idx, count in sorted(details_info["details"].items(), key=lambda x: x[1], reverse=True)[:2]:
answer.append(idx)
return answer
genre_dict = {
genre: {
count: int, # total count
details: { # 해당 장르의 음악 정보
idx: count # 음악 idx, count 정보
}
}
}
각 장르별 total count를 이용하여 정렬하고, 장르의 details는 해당 음악의 count로 정렬하였다.
각 장르별로 최대 2개씩 뽑기 위해 슬라이싱 하였다.