프로그래머스 : 2018 카카오 Blind Recruitment 3차 방금 그곡

2021. 10. 23. 01:55문제풀기/프로그래머스

https://programmers.co.kr/learn/courses/30/lessons/17683

 

코딩테스트 연습 - [3차] 방금그곡

방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV,

programmers.co.kr

간단하게 시키는대로 구현을 하고, 정답이 될 수 있는 후보들은 heap에다 넣어놓으면 쉽게 풀 수 있다.

import heapq
def solution(m, musicinfos):
    answer = []
    
    for music in range(len(musicinfos)):
        start_time,end_time,song_name, plays = musicinfos[music].split(",")
        played = ""
        start_time = list(map(int,start_time.split(":")))
        end_time = list(map(int,end_time.split(":")))
        start_time = start_time[0]*60 + start_time[1]
        end_time = end_time[0]*60 + end_time[1]
        
        playtime = end_time-start_time
        plays_playtime = len(plays) - plays.count("#")
        while playtime>=plays_playtime:
            played += plays
            playtime -= plays_playtime
            
        p_index = 0
        for _ in range(playtime):
            if plays[p_index+1] == "#":
                p_index += 1
            p_index += 1
            
        played += plays[:p_index+1]
        
        for i in range(len(played)-len(m)):
            temp = played[i:i+len(m)]
            if temp == m and played[i+len(m)] != "#":
                heapq.heappush(answer,[-(end_time-start_time),music,song_name])
                break
    if len(answer) == 0:
        return "(None)"
    else:
        now = heapq.heappop(answer)
        return now[2]