728x90
SMALL
일치하는 음악이 여러개라면 ??? 재생시간이 제일 긴 음악제목 반환
재생시간마저 같으면??? 먼저 입력된거반환
이 조건을 처리 안해줘서 테스트 케이스 두개를 계속 통과 못했다 ;_;
그래서 여러개일 경우를 고려하여 result라는 배열에 일치하는것들을
입력된 순서 확인을 위한 index, 재생시간 확인을 위한 minutes, 출력시 필요한 title을 묶어서 넣어주었다.
result의 개수가 여러개이면 result를 처음에는 재생시간이 긴 순서대로 정렬해야하니 -를 붙여서 -x[1]로 정렬한다.
그리고 재생시간이 같다면 먼저 입력된 것을 반환해줘야하니까 x[0]자리에 있는 index순으로 정렬되게 한 다음에
return을 해주었다.!!!!! 구우웃 !!!!!!
def convert(melody):
melody = melody.replace('E#', 'e')
melody = melody.replace('C#', 'c')
melody = melody.replace('D#', 'd')
melody = melody.replace('F#', 'f')
melody = melody.replace('G#', 'g')
melody = melody.replace('A#', 'a')
return melody
def solution(m, musicinfos):
# 음악제목, 재생이 시작되고 끝난 시각, 악보제공
# 사용되는 음 C,C#,D,D#,E,F,F#,G,G#,A,A#,B
# 각 음은 1분에 1개씩 재생, 음악길이>재생시간 : 첨부터 반복해서 재생 else: 첨~재생시간만큼
# 00:00 을 넘는 일은 없다
# 일치하는 음악이 여러개 : 재생시간이 제일 긴 음악제목 반환, 재생시간마저 같으면: 먼저 입력된거반환
# 조건 일치 no : (None)을 반환한다.
# m : 기억한 멜로디를 담은 문자열
# musicinfos : 방송된 곡의 정보 배열
# -> 음악시작시각 HH:MM , 끝난시각 HH:MM ,음악제목,악보정보
result = list()
m = convert(m)
index = 0
for music in musicinfos:
index += 1
start, end, title, info = music.split(',')
endhour, endminute = end.split(':')
starthour, startminute = start.split(':')
endhour, endminute, starthour, startminute = int(endhour), int(endminute), int(starthour), int(startminute)
minutes = (abs(endhour - starthour) * 60) + abs(endminute - startminute)
realinfo = ''
cnt = 0
info = convert(info)
while len(realinfo) < int(minutes):
if cnt == len(info):
cnt = 0
realinfo += info[cnt]
cnt += 1
if m in realinfo:
result.append([index, minutes, title])
if len(result) == 0:
return '(None)'
elif len(result) == 0:
return result[0][2]
else:
result.sort(key=lambda x: (-x[1], x[0]))
return result[0][2]
코테 공부 초반에 이 문제 봤을 때는 너무 어려워서 어떻게 풀지 걱정했는데, 지금 풀어보니 쉬웠다. 😆
그동안 공부하면서 성장했단 말이겠쥐 ?~?!?!?~ >_<
느리더라도 열심히 꾸준히 하자 화이팅 취준 화이티잉
728x90
LIST
'취준시절 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 2018 KAKAO BLIND RECRUITMENT - [3차] 압축 (0) | 2021.09.10 |
---|---|
[프로그래머스] 2018 KAKAO BLIND RECRUITMENT - [3차] 파일명 정렬 (0) | 2021.09.08 |
[프로그래머스] 소수찾기 - Python (0) | 2021.08.26 |
[프로그래머스] 위장 - Python (0) | 2021.08.11 |
[프로그래머스] 구명보트 - Python (0) | 2021.08.10 |