[프로그래머스-String] 방금그곡

CHOI YUN HO·2021년 4월 11일
0

알고리즘 문제풀이

목록 보기
23/63

📃 문제 설명

방금그곡

[문제 출처 : 프로그래머스]

👨‍💻 해결 방법

재생시간이 몇분인지 계산하고,

그 재생시간 동안 실제로 라디오에서 재생된 음정들을 구해서 저장한다.

그리고 그것을 네오가 기억한 멜로디와 비교해서 결과를 구하면 된다.

그런데 음정들이 문자열로 주어지는데 #이 포함되어 있어서 이를 처리하기 위해 문자열을 리스트로 바꾸어 처리해주었다.

👨‍💻 소스 코드

def solution(m, musicinfos):
    dic = {}

    for mf in musicinfos:
        info = mf.split(',')

        si = int(info[1][:2]) - int(info[0][:2])
        bun = int(info[1][3:]) - int(info[0][3:])
        time = si * 60 + bun
        songName = info[2]
        sheet = info[3]

        realSheet = []
        for s in sheet:
            if s == '#':
                realSheet[-1] += s
            else:
                realSheet.append(s)

        radio = []
        for i in range(time):
            radio.append(realSheet[i % len(realSheet)])

        for i in range(len(radio)):
            if ''.join(radio[i:i + len(m) - m.count('#')]) == m:
                dic[songName] = time

    if not dic:
        return "(None)"
    dic = sorted(dic.items(), key=lambda x: x[1], reverse=True)
    return dic[0][0]
profile
가재같은 사람

0개의 댓글