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