728x90
📌 문제
https://programmers.co.kr/learn/courses/30/lessons/42579
📌 문제 접근 방법
- 앨범에 노래를 수록하는 조건의 순서는 다음과 같다.
속한 노래가 많이 재생된 장르 - 장르 내에서 많이 재생된 노래 - 재생 횟수가 같은 경우 고유 번호가 낮은 노래 - 아직 lambda 사용이 익숙치 않아서 원하는 대로 정렬을 하는 게 어려웠다.
하지만 정렬만 제대로 한다면 어렵지 않은 문제!
📌 코드
from collections import defaultdict
def solution(genres, plays):
album = defaultdict(list)
for i in range(len(genres)):
album[genres[i]].append((i, plays[i]))
sorted_genres = sorted(album.keys(), key=lambda x: -sum(song[1] for song in album[x]))
answer = []
for genre in sorted_genres:
songs = sorted(album[genre], key=lambda x: (-x[1], x[0]))
answer.append(songs[0][0])
if len(songs) > 1:
answer.append(songs[1][0])
return answer
728x90
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[PG/Python] 숫자 문자열과 영단어 (0) | 2022.01.08 |
---|---|
[PG/Python] 보석 쇼핑 (0) | 2022.01.08 |
[PG/Python] 표 편집 (0) | 2021.12.27 |
[PG/Python] 디스크 컨트롤러 (0) | 2021.12.26 |
[PG/Python] 야근 지수 (0) | 2021.12.22 |
댓글