Search

베스트앨범

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

from collections import Counter def solution(genres, plays): # 장르 별 재생 횟수 카운터입니다. genrecnt = Counter() for genre, n in zip(genres, plays): genrecnt[genre] += n # 이후 노래 인덱스에 대해 정렬합니다. # 노래 재생횟수보다 장르에 대한 정렬이 우선순위가 높으므로, # 장르를 나중에 정렬함에 주의합니다. indices = list(range(len(plays))) indices.sort(key=lambda i: plays[i], reverse=True) indices.sort(key=lambda i: genrecnt[genres[i]], reverse=True) # 마지막으로, 각 장르에 대해 최대 2개의 노래만 선택합니다. answer, selectcnt = [], Counter() for i in indices: if selectcnt[genres[i]] < 2: answer.append(i) selectcnt[genres[i]] += 1 return answer
Python
복사

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges