https://programmers.co.kr/learn/courses/30/lessons/42579
딕셔너리를 이용해 키-값의 관계를 이용할수 있는가를 물어보는 문제.
문제에서 원하는 답을 문제의 흐름대로 썼다.
장르별 재생횟수를 딕셔너리를 만들고 재생횟수 순서로 리스트에 담았다.
동시에 장르별 노래를 딕셔너리에 담았다.
좀 지저분하지만 딕셔너리를 이용해 문제에서 말한 요구사항을 따라가면 쉽게 해결할 수 있었다.
def solution(genres, plays):
answer = []
totalPlayed = {}
musicPlayed = {}
for i in range(len(genres)):
if genres[i] not in totalPlayed.keys():
totalPlayed[genres[i]] = plays[i]
musicPlayed[genres[i]] = [(plays[i],i)]
else:
totalPlayed[genres[i]] += plays[i]
musicPlayed[genres[i]].append((plays[i],i))
genreByPlayed = list(zip(totalPlayed.keys(), totalPlayed.values()))
genreByPlayed.sort(key = lambda x: x[1], reverse = True)
# print(genreByPlayed)
# print(musicPlayed)
for i in range(len(genreByPlayed)):
musiclist = musicPlayed[genreByPlayed[i][0]]
print(musiclist)
if len(musiclist) == 1:
answer.append(musiclist[0][1])
else:
musiclist.sort(key = lambda x: x[0], reverse = True)
answer.append(musiclist[0][1])
answer.append(musiclist[1][1])
return answer