Haribo ML, AI, MATH, Algorithm

베스트앨범

2021-01-26
Haribo

from collections import defaultdict
def solution(genres, plays):
    dic = defaultdict(list)
    for i, info in enumerate(zip(genres, plays)) :
        kind, play_time = info
        dic[kind].append([i, play_time])
    answer = []
    for k in sorted(dic.values(), key = lambda info : sum(play_time for i, play_time in info), reverse = True) :
        answer.extend(sorted(k, key = lambda info : info[1], reverse = True)[:2])
    return [index for index, _ in answer]

풀이

  1. 속한 노래가 많이 재생된 장르를 먼저 수록합니다.
  2. 장르 내에서 많이 재생된 노래를 먼저 수록합니다.
  3. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다.

장르당 노래 2개씩 앨범에 수록합니다.

총 재생횟수가 가장 많은 장르순으로 정렬

장르내에서 가장 많이 재생된 노래 최대 2개씩 선택해 앨범에 수록

from collections import defaultdict
def solution(genres, plays):
    dic = defaultdict(list)
    for i, info in enumerate(zip(genres, plays)) :
        kind, play_time = info
        dic[kind].append([i, play_time])
    answer = []
    for kind in sorted(dic.values(), key = lambda info : sum(play_time for i, play_time in info), reverse = True) : # 총 재생수가 가장 많은 장르 [index, play_time]리스트 순으로 반복문 수행
        answer.extend(sorted(kind, key = lambda info : (info[1], -info[0]), reverse = True)[:2])
 # play_time은 내림차순, index는 오름차순 정렬후 2개씩 뽑아 저장
    return [index for index, _ in answer]

Similar Posts

이전 포스트 등굣길

다음 포스트 순위

Comments