1day-1algorithm
방금그곡
Haril Song
2021. 8. 9. 13:14
코딩테스트 연습 - [3차] 방금그곡
방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV,
programmers.co.kr
🤔생각해보기
처음은 정규식으로 해결했는데 원인 모를 런타임 에러가 발생해서 정규식을 사용하지 않고 해결했다.
사실 "," 로 필요한 문자열을 구분할 수 있기 때문에 굳이 정규식을 쓰지 않아도 되고...
에러 찾는데 시간을 오래 허비해서 아쉽지만, 해결과정의 알고리즘은 간단한 편이다.
"#" 을 그냥 처리할 수는 없으므로 2개의 문자를 하나로 변환해주는 과정을 구현해주는 것이 핵심 아이디어라 할 수 있겠다.
코드
def convert(string):
pitch = {
"C#": "c",
"D#": "d",
"F#": "f",
"G#": "g",
"A#": "a",
}
for i in pitch.keys():
find = string.find(i)
if find >= 0:
string = string.replace(i, pitch[i])
return string
def solution(m, musicinfos):
result = ()
m = convert(m)
for info in musicinfos:
start, end, title, sheet = info.split(",")
start_h, start_m, end_h, end_m = map(int, start.split(':') + end.split(':'))
# 시간 변환
timer = 60 * (end_h - start_h) + (end_m - start_m)
# 악보 변환
sheet = convert(sheet)
sheet = (sheet * timer)[:timer]
if m in sheet:
if not result or timer > result[1]:
result = (title, timer)
if not result:
return "(None)"
return result[0]