https://programmers.co.kr/learn/courses/30/lessons/42579
def solution(genres, plays):
dict = {}
plist = {}
for i in range(len(plays)):
dict[i] = [plays[i], genres[i]]
plist[genres[i]] = []
# dict {0: [500, 'classic'], 1: [600, 'pop'], 2: [150, 'classic'], 3: [800, 'classic'], 4: [2500, 'pop']}
gen = {}
for i in genres:
gen[i] = 0
for i in dict:
for j in genres:
if dict[i][1] == j:
gen[j] += dict[i][0]
break
for i in range(len(plays)):
plist[genres[i]] += [[i, plays[i]]]
for v in plist.values():
v.sort(key=lambda x:(-x[1], x[0]))
gen = sorted(gen.items(), key=lambda x: -x[1])
answer = []
for g, p in gen:
for k in range(min(len(plist[g]), 2)):
answer.append(plist[g][k][0])
print(answer)
return answer
genres = ["classic", "pop", "classic", "classic", "pop"]
plays = [500, 600, 150, 800, 2500]
solution(genres, plays)