강의로 돌아가기
RK

30번 테스트 케이스만 틀립니다.

개선점이 무엇이 있을까요?
더 뭘 해야되는지 감이 잘 안잡히네요.

작성중인 코드―solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def solution(m, musicinfos):
    musics = []
    answer = "(None)"
    for info in musicinfos:
        info_list = info.split(',')
        sounds = list(info_list[3])
        for idx, s in enumerate(sounds):
            if s == '#':
                sounds[idx-1] = '#' + sounds[idx-1]

        sounds = [s for s in sounds if s != '#']
        time1 = int(info_list[0].split(":")[1])
        time2 = int(info_list[1].split(":")[1]) + (int(info_list[1].split(":")[0]) - int(info_list[0].split(":")[0])) * 60
        sounds_list = []
        sounds_length = len(sounds)
        for i in range(time2-time1):
            sounds_list.append(sounds[i%sounds_length])
        musics.append((info_list[2],','.join(sounds_list)))
    musics.sort(key=lambda x: len(x[1]), reverse=True)

    m = list(m)
    for idx, s in enumerate(m):
        if s == '#':
            m[idx-1] = '#' + m[idx-1]
    m = [i for i in m if i != '#']
    m = ','.join(m)
    for i in musics:
        if m in i[1]:
            answer = i[0]
            break
    return answer
1 개의 답변
황규승

저도 30번 하고 몇개 틀렸었는데

조건이 일치하는 음악이 여러 개일 때에는 라디오에서 재생된 시간이 제일 긴 음악 제목을 반환한다.
재생된 시간도 같을 경우 먼저 입력된 음악 제목을 반환한다.

이거 해결하니까 되네요 ㅎㅎ

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.