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

박형진·2021년 11월 19일
0

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


1. 전체 코드

import re
def solution(m, musicinfos):
    answer = []
    m = m.replace('C#', '1')
    m = re.sub('D#', '2', m)
    m = re.sub('F#', '3', m)
    m = re.sub('G#', '4', m)
    m = re.sub('A#', '5', m)

    for idx, music in enumerate(musicinfos):
        s = music.split(',')
        h = int(s[1][:2]) - int(s[0][:2])
        mi = int(s[1][3:]) - int(s[0][3:])
        tot = (h * 60) + mi

        k = s[3][:]
        k = re.sub('C#', '1', k)
        k = re.sub('D#', '2', k)
        k = re.sub('F#', '3', k)
        k = re.sub('G#', '4', k)
        k = re.sub('A#', '5', k)

        complete = tot // len(k)
        remain = tot % len(k)
        result = k * complete
        result += k[:remain]
        ans = re.search(m, result)

        if ans:
            answer.append((s[2], tot, idx))
    if not answer:
        return '(None)'
    answer = sorted(answer, key=lambda x: (-x[1], x[0]))
    return answer[0][0]

2. 후기

1.replace()와 re.sub()은 동일한 기능을 제공한다. return '(None)'return None 으로 제출하면 오답이 나오니, 문제를 정확하게 읽어보자.

profile
안녕하세요!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN