티스토리 뷰
programmers.co.kr/learn/courses/30/lessons/42579?language=python3
dic : 장르별 재생 횟수가 저장된 딕셔너리
-> {'classic': 1450, 'pop': 3100}
-> 정렬 후 [('pop', 3100), ('classic', 1450)]
album : 장르별 노래의 재생된 횟수와 고유번호가 저장된 딕셔너리
-> {'classic': [[500, 0], [150, 2], [800, 3]], 'pop': [[600, 1], [2500, 4]]}
def solution(genres, plays):
answer = []
dic = {}
album = {}
for i in range(len(genres)):
if genres[i] not in dic:
dic[genres[i]] = plays[i] # 장르별 재생된 횟수 저장
album[genres[i]] = [[plays[i], i]] # 이차원배열 형태로 [재생 횟수, 고유 번호] 저장
else:
dic[genres[i]] += plays[i]
album[genres[i]].append([plays[i], i])
dic = sorted(dic.items(), key=(lambda x:x[1]), reverse = True) # 많이 재생된 장르 순으로 정렬
for genre in dic: # 많이 재생된 장르를 차례대로 탐색
tmp = album[genre[0]]
tmp = sorted(tmp, key=lambda x:x[0], reverse = True) # 재생된 횟수를 기준으로 내림차순 정렬
if len(tmp) > 1: # 노래가 2개 이상이면 첫번째, 두번째 고유번호만 가져옴
answer.append(tmp[0][1])
answer.append(tmp[1][1])
else:
answer.append(tmp[0][1])
return answer
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 정수 삼각형 - Python (0) | 2021.03.12 |
---|---|
[프로그래머스] 도둑질 - Python (0) | 2021.03.12 |
[프로그래머스] 체육복 - Python (0) | 2021.02.28 |
[프로그래머스] K번째수 - Python (0) | 2021.02.27 |
[프로그래머스] 신규 아이디 추천 - Python (0) | 2021.02.27 |