https://school.programmers.co.kr/learn/courses/30/lessons/17683
코드
def solution(m, musicinfos):
m = m.replace('C#','c').replace('D#','d').replace('F#','f').replace('G#','g').replace('A#','a')
answer = []
for music in musicinfos:
s = int(music.split(',')[0].split(':')[0]) * 60 + int(music.split(',')[0].split(':')[1])
e = int(music.split(',')[1].split(':')[0]) * 60 + int(music.split(',')[1].split(':')[1])
toLower = music.split(',')[3].replace('C#','c').replace('D#','d').replace('F#','f').replace('G#','g').replace('A#','a')
song = toLower * ((e-s) // len(toLower) + 1)
if m in song:
answer.append((music.split(',')[2], e-s))
if answer:
answer.sort(reverse = True, key = lambda x: x[1])
return answer[0][0]
return '(None)'
테스트 케이스 30번만 실패하여 다른 코드를 참고하였다.
def solution(m, musicinfos):
answer = ''
result = list()
for i in musicinfos:
info = i.split(',')
time = (int(info[1][:2]) * 60 + int(info[1][3:])) - (int(info[0][:2]) * 60 + int(info[0][3:]))
music = list(info[-1])
i = 1
while (i < len(music)) and ('#' in music):
if (music[i] == '#'):
music[i - 1] = music[i - 1] + music[i]
del music[i]
else:
i += 1
length = len(music)
play = music * (time // length) + music[ : time % length]
m = list(m)
i = 1
while (i < len(m)) and ('#' in m):
if (m[i] == '#'):
m[i - 1] = m[i - 1] + m[i]
del m[i]
else:
i += 1
for i in range(len(play) - len(m) + 1):
if (play[i : i + len(m)] == m):
result.append([info[2], time])
break
if (len(result) > 0):
result.sort(key = lambda x : x[1], reverse = True)
answer = result[0][0]
else:
answer = '(None)'
return answer
참조
https://yonghee.io/peurogeuraemeoseu-17683-banggeumgeugog/
프로그래머스 17683: 방금그곡 (카카오 2018 블라인드 공채 3차) Python 문제풀이
프로그래머스 17683: 방금그곡 (카카오 2018 블라인드 공채 3차) Python 문제풀이
yonghee.io
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 3단계 / 섬 연결하기 / python / Greedy / Kruskal 알고리즘 (0) | 2024.07.13 |
---|---|
Programmers / 3단계 / 징검다리 건너기 / python / 2019 카카오 개발자 겨울 인턴십 (0) | 2024.05.24 |
Programmers / 3단계 / 보석 쇼핑 / python (0) | 2024.05.21 |
Programmers / 2단계 / 여행 경로 / python (0) | 2024.05.19 |
Programmers / 2단계 / 줄 서는 방법 / python (0) | 2024.05.16 |