반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42579
풀이
장르별로 총 재생횟수를 구하고 내림차순한다.
장르명을 키로하고 총 재생횟수를 값으로 가지는 딕셔너리를 이용한다.
장르별 곡들을 정렬하기 위해서 장르명을 키로하고 (곡 id, 재생 횟수) 튜플 배열을 값으로 가지는 딕셔너리를 이용한다.
이를 통해 장르별 곡들도 재생 횟수로 내림차순 정렬이 가능하다.
정렬 후 각 장르별로 재생 횟수가 높은 2곡을 뽑는다.
코드
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
def solution(genres, plays):
genres_song = {}
genres_play = {}
for i in range(len(genres)):
if genres[i] not in genres_song:
genres_song[genres[i]] = []
genres_play[genres[i]] = 0
genres_song[genres[i]].append((plays[i], i))
genres_play[genres[i]] += plays[i]
genres_play = sorted(genres_play.items(), key=lambda x:x[1], reverse=True)
answer = []
for genre, _ in genres_play:
top2 = sorted(genres_song[genre], key=lambda x:(-x[0], x[1]))[:2]
for _, id in top2:
answer.append(id)
return answer
|
cs |
반응형
'프로그래머스 > 미해결' 카테고리의 다른 글
프로그래머스 - 의상 (0) | 2024.02.22 |
---|---|
프로그래머스 - 메뉴 리뉴얼 (1) | 2024.02.12 |
프로그래머스 - 표 편집 (0) | 2024.01.23 |
프로그래머스 - 주식가격 (0) | 2024.01.16 |
프로그래머스 - 괄호 회전하기 (0) | 2024.01.13 |