코딩 테스트/Level 2

49. [3차] 방금 그 곡

컴닥 2020. 9. 2. 20:31
반응형

[3차] 방금 그 곡
2018 KAKAO BLIND RECRUITMENT
1069명 완료

레벨2 수준에 적당한 문제.. 
#을 어떻게 처리하는 게 가장 좋을지 생각해보시면 좋겠네요. 
리스트로 ['C#', 'C'] 이런 식으로 하나의 엘리먼트로 코딩하셔도 좋고.
저는 C#을 소문자 c로 치환해서 풀었는데 이 방법도 꽤 간편합니다. 

https://programmers.co.kr/learn/courses/30/lessons/17683

 

코딩테스트 연습 - [3차] 방금그곡

방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, ��

programmers.co.kr

def solution(m, musicinfos):
    temp = []
    for each in musicinfos:
        time1, time2, name, score = each.split(',')
        time = time_split(time2) - time_split(time1)
        score = score_parse(score, time)
        m = score_parse(m)
        if m in score:
            temp.append((name, time))
    if not temp:
        return '(None)'
    return sorted(temp, key=lambda x: -x[1])[0][0]


def score_parse(score, time=0):
    score_list = []
    for note in score:
        if note == '#':
            score_list[-1] = score_list[-1].lower()
        else:
            score_list.append(note)
    if time != 0:
        while len(score_list) < time:
            score_list.extend(score_list[:])
        score_list = score_list[:time]
    return "".join(score_list)


def time_split(n):
    temp = n.split(':')
    return int(temp[0]) * 60 + int(temp[1])

파이썬 유저들은 None라는 표현에 익숙하실 텐데요..
문제를 보면 리턴을'(None)'으로 하라고.. 

반응형