문제 설명 및 제한사항
아이디어 및 해결 방법
코드
def h2m(s):
return 60*int(s.split(':')[0]) + int(s.split(':')[1])
def parse(musicinfo):
start, end, name, melody = musicinfo.split(',')
duration = h2m(end) - h2m(start)
melody = melody.replace('C#', 'H').replace('D#', 'I').replace('F#', 'J').replace('G#', 'K').replace('A#', 'L')
full_melody = melody * (duration // len(melody) + 1)
full_melody = full_melody[:duration]
return name, duration, full_melody
def solution(m, musicinfos):
m = m.replace('C#', 'H').replace('D#', 'I').replace('F#', 'J').replace('G#', 'K').replace('A#', 'L')
max_duration, answer = -1, '(None)'
for name, duration, melody in [parse(x) for x in musicinfos]:
if m in melody and duration > max_duration:
answer = name
max_duration = duration
return answer
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges