문제 링크 - https://programmers.co.kr/learn/courses/30/lessons/42579
def solution(genres, plays):
# 장르별로 재생된 전체 횟수 구하기
total_plays = {}
for i in range(len(genres)):
if genres[i] not in total_plays:
total_plays[genres[i]] = plays[i]
else:
total_plays[genres[i]] += plays[i]
# {index:('장르', '노래 재생 횟수', '이 장르가 전체 재생된 횟수') 형태의 딕셔너리 만들어서 정렬
total = {}
for idx, value in enumerate(genres):
if idx not in total:
total[idx] = (value, plays[idx], total_plays[value])
total = dict(sorted(total.items(), key = lambda x : (-x[1][-1], -x[1][1], x[1][0])))
# 장르가 두 개씩만 담겨야하기 때문에 그걸 세기 위한 answer_dict를 만들어서 answer에 인덱스 추가
answer = []
answer_dict = {}
for key, value in total.items():
if value[0] not in answer_dict:
answer.append(key)
answer_dict[value[0]] = 1
elif answer_dict[value[0]] < 2:
answer_dict[value[0]] += 1
answer.append(key)
else:
continue
return answer