프로그래머스 42579. 베스트앨범

2025. 1. 14. 13:49·프로그래머스

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(genres, plays): # 고유번호가 인덱스인 노래장르 / 각각 재생된 횟수
    
    '''
    plays가 가장 높은 장르먼저
    그중에서도 가장 높은 plays 노래
    그중에서도 재생횟수 같으면 고유번호가 낮은거 
    장르별로 노래 두개씩 고르기
    순서대로 출력
    
    리스트1 = [[전체 플레이 횟수, [재생1위인덱스, 플레이수], [재생2위인덱스, 플레이수]], [...]...]
    리스트2 = [장르명1, 장르명2, 장르명3]
    '''
    genre_info = []
    genre_names = []
    
    for i in range(len(genres)):
        if genres[i] in genre_names:
            idx = genre_names.index(genres[i])
            genre_info[idx][0] += plays[i]
            if genre_info[idx][1][1] < plays[i]:
                
                genre_info[idx][2][0] = genre_info[idx][1][0]
                genre_info[idx][2][1] = genre_info[idx][1][1]
                
                genre_info[idx][1][0] = i
                genre_info[idx][1][1] = plays[i]
                
            elif genre_info[idx][2][0] == -1 or genre_info[idx][2][1] < plays[i]:
                genre_info[idx][2][0] = i
                genre_info[idx][2][1] = plays[i]
        else:
            genre_names.append(genres[i])
            genre_info.append([plays[i], [i, plays[i]],[-1, -1]])
    
    genre_info.sort(key= lambda x: x[0], reverse=True)
    
    answer = []
    for genre in genre_info:
        answer.append(genre[1][0])
        if genre[2][0] != -1:
            answer.append(genre[2][0])

    return answer
저작자표시 (새창열림)

'프로그래머스' 카테고리의 다른 글

프로그래머스 84512. 모음사전  (0) 2025.01.15
프로그래머스 42839. 소수 찾기  (0) 2025.01.14
프로그래머스 42578. 의상  (0) 2025.01.09
프로그래머스 42577. 전화번호 목록  (0) 2025.01.09
프로그래머스 42576. 완주하지 못한 선수  (0) 2025.01.04
'프로그래머스' 카테고리의 다른 글
  • 프로그래머스 84512. 모음사전
  • 프로그래머스 42839. 소수 찾기
  • 프로그래머스 42578. 의상
  • 프로그래머스 42577. 전화번호 목록
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (381)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅 (5)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (1)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    Til
    항해99
    코딩테스트준비
    99클럽
    개발자취업
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
프로그래머스 42579. 베스트앨범
상단으로

티스토리툴바