[프로그래머스] LV.2 [3차] 방금그곡
1. 문제 : Link
멜로디를 비교해가며 곡을 return하는 문제
2. 풀이
#에 대한 처리 메서드를 따로 빼주고
시간처리, 반복처리를 해준다.
3. 코드
def change(music):
if 'A#' in music:
music = music.replace('A#', 'a')
if 'F#' in music:
music = music.replace('F#', 'f')
if 'C#' in music:
music = music.replace('C#', 'c')
if 'G#' in music:
music = music.replace('G#', 'g')
if 'D#' in music:
music = music.replace('D#', 'd')
return music
def solution(m, musicinfos):
answer = ''
m = change(m)
maxx = 0
for info in musicinfos:
start, end, song, melody = info.split(',')
melody = change(melody)
start = start.replace(':','')
end = end.replace(':','')
s1 = int(start[0:2])
e1 = int(end[0:2])
s2 = int(start[2:4])
e2 = int(end[2:4])
duration = (e1 - s1) * 60
result = e2-s2
if result < 0:
result = result + 60
duration -= 60
duration += result
i, k = 0, 0
wm = []
while k < duration:
if i == len(melody)-1:
wm.append(melody[i])
i = -1
else:
wm.append(melody[i])
k += 1
i += 1
final = ''.join(wm)
if m in final:
if maxx < duration:
maxx = duration
answer = ''
answer += song
if maxx == duration:
continue
if not answer:
return "(None)"
return answer
'💻 Coding Problems Solving > Array | String | Loop' 카테고리의 다른 글
[BOJ 2609] 최대공약수와 최소공배수 (0) | 2022.06.22 |
---|---|
[BOJ 2501] 약수 구하기 (0) | 2022.06.03 |
[프로그래머스] LV.2 [3차] 파일명 정렬 (0) | 2022.04.24 |
[프로그래머스] LV.2 예상 대진표 (0) | 2022.04.21 |
[프로그래머스] LV.2 [1차] 캐시 (0) | 2022.04.19 |
최근댓글