Algorithm
[Algorithm] 프로그래머스 베스트앨범 python
반응형
https://programmers.co.kr/learn/courses/30/lessons/42579
풀이
- 장르 별 재생된 노래를
{ key: 장르, vaule: 재생 횟수 }
형식으로 딕셔너리에 담는다. ->genresCnt
genresCnt
를 value 기준으로 내림차순 정렬한다.genresCnt
의 key와 일치하는 genres의 인덱스를 찾고, 인덱스에 해당하는 plays를{ key: 장르의 인덱스, value: 인덱스에 대응하는 재생 횟수 }
형식으로 딕셔너리에 담는다. ->playsCnt
playsCnt
를 value 기준으로 내림차순 정렬한다.playsCnt
의 앞에서부터 2개의 key를 answer에 담는다.
소스코드
def solution(genres, plays):
answer = []
#1. key-value 구조화
genresCnt = {}
for i in range(len(genres)):
genre = genres[i]
if genre in genresCnt:
genresCnt[genre] += plays[i]
else:
genresCnt[genre] = plays[i]
#2. value 기준으로 내림차순 정렬
genresCnt = dict(sorted(genresCnt.items(), key=lambda item: item[1], reverse=True))
#3. genresCnt key 탐색
for genre in genresCnt.keys():
#3-1. 각 index에 해당하는 plays -> key-value로 구조화
playsCnt = {}
for idx, val in enumerate(genres):
if genre == val:
playsCnt[idx] = plays[idx]
#3-2. value 기준으로 내림차순 정렬
playsCnt = dict(sorted(playsCnt.items(), key=lambda item: item[1], reverse=True))
#3-3. 앞에서부터 2개의 key를 answer에 추가
i = 0
for key, val in playsCnt.items():
if i > 1:
break
answer.append(key)
i += 1
playsCnt.clear()
return answer
🤐 사족
파이썬에서 딕셔너리를 value 기준으로 정렬하는 방법 기억하자!
dict(sorted(sortByValue.items(), key=lambda item: item[1])
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm] 프로그래머스 H-Index python (0) | 2021.10.07 |
---|---|
[Algorithm] 프로그래머스 베스트앨범 c++ (Map 활용) (0) | 2021.10.07 |
[Algorithm] 프로그래머스 위장 python (0) | 2021.10.01 |
[Algorithm] 프로그래머스 전화번호 목록 python (0) | 2021.09.30 |
[Algorithm] 프로그래머스 입국심사 c++ (0) | 2021.09.29 |