1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# # -> 소문자
def replace_sharp(s):
return s.replace("A#", "a").replace("C#", 'c').replace("D#", 'd').replace("F#", 'f').replace("G#", 'g')
# 재생 시간 추출
def extraction_minutes(start_time, end_time):
minute = 0
hour = 1 * (int(end_time.split(':')[0]) - int(start_time.split(':')[0]))
if hour == 0: minute = int(end_time.split(':')[1]) - int(start_time.split(':')[1])
else: minute = 60 * hour + int(end_time.split(':')[1]) - int(start_time.split(':')[1])
return minute
# 재생 시간 만큼 멜로디 추출
def extraction_melody(melody, duration):
melody = replace_sharp(melody)
melody = melody*(duration // len(melody)+1)
return melody[:duration]
def solution(m, musicinfos):
m = replace_sharp(m)
play_time = [0]
play_title = ['(None)']
for music in musicinfos:
start_time, end_time, title, melody = music.split(',')
duration = extraction_minutes(start_time, end_time)
melody = extraction_melody(melody, duration)
if m in melody:
play_time.append(duration)
play_title.append(title)
return play_title[play_time.index(max(play_time))]
|
cs |
'알고리즘' 카테고리의 다른 글
프로그래머스 오픈채팅방 - 2019 KAKAO BLIND RECRUITMENT (파이썬) (0) | 2020.09.27 |
---|---|
프로그래머스 가운데 글자 가져오기 (파이썬) (0) | 2020.09.25 |
프로그래머스 예산 (파이썬) (0) | 2020.09.23 |
프로그래머스 두 개 뽑아서 더하기 (코틀린) (0) | 2020.09.18 |
프로그래머스 삼각 달팽이 (코틀린) (0) | 2020.09.17 |