코딩하는 해맑은 거북이
[Python] 베스트앨범 - 프로그래머스 본문
해당 글은 프로그래머스 해시 Level3 문제 '베스트앨범'을 다룬다.
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42579
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
설명
딕셔너리의 key, value 형태를 이용해서 푸는 문제이다.
딕셔너리 2개를 이용해서 먼저 많이 재생된 장르를 정렬하고, 장르 중에 많이 재생된 노래를 정렬해서 2개만 정답으로 넣어주면 된다.
코드
def solution(genres, plays):
answer = []
genres_dict = {}
total_genres = {}
for i, (g, p) in enumerate(zip(genres, plays)):
if g not in genres_dict:
genres_dict[g] = [(i, p)]
total_genres[g] = p
else:
genres_dict[g].append((i, p))
total_genres[g] += p
for (k, v) in sorted(total_genres.items(), key=lambda x:x[1], reverse=True):
for (i, p) in sorted(genres_dict[k], key=lambda x:x[1], reverse=True)[:2]:
answer.append(i)
return answer
'코딩테스트' 카테고리의 다른 글
[Python] 스타트와 링크 - 백준 (DFS) (0) | 2023.01.04 |
---|---|
[Python] 거스름돈 - 프로그래머스 (DP) (0) | 2023.01.04 |
[Python] 줄 서는 방법 - 프로그래머스 (0) | 2023.01.03 |
[Python] 전력망을 둘로 나누기 - 프로그래머스 (BFS) (0) | 2023.01.03 |
[Python] 문자열 내 마음대로 정렬하기 - 프로그래머스 (정렬) (0) | 2023.01.03 |
Comments