

def solution(genres, plays):
    answer = []
    dic1 = {}
    dic2 = {}
    for idx, (g, p) in enumerate(zip(genres, plays)):
		# {'classic': [(0, 500), (2, 150), (3, 800)], 'pop': [(1, 600), (4, 2500)]}
		if g not in dic1:
            dic1[g] = [(idx, p)]
        else:
            dic1[g].append((idx, p))
		# {'classic': 1450, 'pop': 3100}
        if g not in dic2:
            dic2[g] = p
        else:
            dic2[g] += p
	# dict_items([('classic', 1450), ('pop', 3100)])
    for (k, v) in sorted(dic2.items(), key=lambda x:x[1], reverse=True):
        for (i, p) in sorted(dic1[k], key=lambda x:x[1], reverse=True)[:2]:
            answer.append(i)
    return answer
reverse: bool값을 넣는다. 기본값은 reverse=False(오름차순),reverse=True으로 내림차순 정렬할 수 있다.num_list = [3,4,77,34,66]
num_list.sort(reverse=True)
print(num_list) # [77, 66, 34, 4, 3]
print(sorted(['좋은하루','good_morning','굿모닝','niceday'], reverse=True))
['좋은하루', '굿모닝', 'niceday', 'good_morning']
key: 정렬을 목적으로 하는 함수를 값으로 넣는다. lambda를 이용할 수 있다. key 값을 기준으로 정렬되고 기본값은 오름차순이다. str_list = ['좋은하루','good_morning','굿모닝','niceday']
print(sorted(str_list, key=len))  # ['굿모닝', '좋은하루', 'niceday', 'good_morning']
print(sorted(str_list, key=lambda x : x[1])) # ['niceday', 'good_morning', '굿모닝', '좋은하루']
tuple_list = [('좋은하루', 0), ('niceday', 1), ('좋은하루', 5), 
    	     ('good_morning', 3), ('niceday',5)]   
             
tuple_list.sort(key=lambda x : (x[0], x[1])) 
print(tuple_list) # [('good_morning', 3), ('niceday', 1), ('niceday', 5), ('좋은하루', 0), ('좋은하루', 5)]
tuple_list.sort(key=lambda x : (-x[1], x[0]))
print(tuple_list) # [('niceday', 5), ('좋은하루', 5), ('good_morning', 3), ('niceday', 1), ('좋은하루', 0)]
순서와 리스트의 값을 전달하는 기능순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴for문과 함께 자주 사용data = enumerate((1, 2, 3))
print(data, type(data)) # <enumerate object at 0x7fdfadfdf4c0> <class 'enumerate'>
for i, value in data:
    print(i, ":", value)
# 0 : 1
# 1 : 2
# 2 : 3
data = enumerate({1, 2, 3})
for i, value in data:
    print(i, ":", value)
# 0 : 1
# 1 : 2
# 2 : 3
data = enumerate([1, 2, 3])
for i, value in data:
    print(i, ":", value)
# 0 : 1
# 1 : 2
# 2 : 3
dict1 = {'이름': '김지니', '나이': 33}
data = enumerate(dict1)
for i, key in data:
    print(i, ":", key, dict1[key])
# 0 : 이름 김지니
# 1 : 나이 33
data = enumerate("재미있는 파이썬")
for i, value in data:
    print(i, ":", value)
# 0 : 재
# 1 : 미
# 2 : 있
# 3 : 는
# 4 :  
# 5 : 파
# 6 : 이
# 7 : 썬
한줄 평: 혼자 풀지못했다. sort, lambda, enumerate....😂
references
https://ooyoung.tistory.com/59