Altiora Petamus

방금그곡 본문

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]

'1day-1algorithm' 카테고리의 다른 글

세로읽기  (0) 2021.08.17
파일명 정렬  (0) 2021.08.13
특정한 최단 경로  (0) 2021.07.27
미확인 도착지  (0) 2021.07.17
다트 게임  (0) 2021.07.17