본문 바로가기

CodingTest/99클럽2024스터디

99클럽 코테 스터디 5일차 TIL, 프로그래머스 / 베스트 앨범

 

def solution(genres, plays):
    # 장르별 총 재생횟수
    # 장르 내 노래 각각의 재생수 
    # 장르 내 재생횟수 같으면, 고유 번호 낮은 노래 먼저 수록하기
    hash = {}
    answer = []
    for i in range(len(genres)):
        genre = genres[i]
        if genre in hash :
            hash[genre]['plays'][i] = plays[i]
            hash[genre]['totPlay'] += plays[i]
        else :
            hash[genre] = {
                'plays':{
                    i : plays[i]
                },
                'totPlay' : plays[i]
            }
    # 장르 총 재생횟수 기준 정렬
    hash = sorted(list(hash.items()),key = lambda x : -x[1]['totPlay'])
    print("hash",hash)
    for i in range(len(hash)):
        hash[i][1]['plays'] = sorted(hash[i][1]['plays'].items(),key = lambda x : (-x[1],x[0]) )
    
    for i in range(len(hash)) :
        try :
            answer += [hash[i][1]['plays'][0][0],hash[i][1]['plays'][1][0]]
        except :
            answer += [hash[i][1]['plays'][0][0]]
    return answer

https://school.programmers.co.kr/learn/courses/30/lessons/42579

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr