반응형
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42579
문제
문제 풀이 코드
from collections import defaultdict
def solution(genres, plays):
# 0으로 초기화
play_cnt_by_genre = defaultdict(int)
# empty list로 초기화
songs_in_genre = defaultdict(list)
for song_id, genre, play in zip(counter(), genres, plays):
play_cnt_by_genre[genre]+=play
songs_in_genre[genre].append((-play, song_id))
print(play_cnt_by_genre)
print(songs_in_genre)
genre_in_order = sorted(play_cnt_by_genre.keys(), key=lambda g:play_cnt_by_genre[g], reverse=True)
print(genre_in_order)
answer = []
for genre in genre_in_order:
print(genre)
answer.extend([song_id for play, song_id in sorted(songs_in_genre[genre])[:2]])
return answer
def counter():
i=0
while True:
yield i
i+=1
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 가장 큰 수(level 2) 파이썬 문제 풀이 (2) | 2021.08.27 |
---|---|
[프로그래머스] 모의고사(level 1) 파이썬 문제 풀이 (0) | 2021.08.23 |
[프로그래머스] K번째수(level 1) Python 문제 풀이 (0) | 2021.07.17 |
[프로그래머스] 프린터 (level 2) Python 문제 풀이 (2) | 2021.06.26 |
[프로그래머스] 기능개발 (level 2) Python 문제 풀이 (0) | 2021.06.25 |
댓글