방금그곡
코딩테스트 연습 - [3차] 방금그곡
방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV,
programmers.co.kr
- 내 풀이
- 테스트 7,8,9,12,15,19 fail
- 원인)
- C# 과 같이 #이 붙은 음은 하나로 봐야 하기 때문에 재생시간에 따라 음길이를 조절할 때 유의해야함!
- 기억한 음에 #이 붙은 경우를 동일한 음으로 생각하지 않도록 삭제
- 테스트 7,8,9,12,15,19 fail
def solution(m, musicinfos):
max_m=0
answer=""
for music in musicinfos:
minute=0
start, end, name, s=music.split(",")
start_h,start_m=map(int,start.split(":"))
end_h,end_m=map(int,end.split(":"))
#재생시간 측정
if end_m>=start_m:
minute+=(end_m-start_m)
else:
end_h-=1
end_m+=60
minute+=(end_m-start_m)
minute+=60*(end_h-start_h)
#재생시간만큼 음길이 수정
if len(s)<=minute:
s*=(minute//len(s)+1)
else:
s=s[:minute]
# 기억하는 멜로디에 #이 붙은 경우 삭제
m2=m+"#"
s=s.replace(m2,'')
if m in s:
#멜로디를 가진 노래가 여러개인 경우 음이 가장 긴 것
#시간이 같은 경우는 먼저 나온 노래를 선택하도록 시간이 길 경우에만 값 대체
if max_m<minute:
answer=name
max_m= minute
if answer:
return answer
else:
return "(None)"
- 내 풀이
- 원인) C# 과 같이 #이 붙은 음은 하나로 봐야 하기 때문에 재생시간에 따라 음길이를 조절할 때 유의해야함!
- 해결 방안
- #의 개수만큼 minute에 더해주기
- len(s)<=minute+n
- 또는 #을 지운 음의 길이랑 비교
- len(s.replace("#",''))<=minute
- #의 개수만큼 minute에 더해주기
def solution(m, musicinfos):
max_m=0
answer=""
for music in musicinfos:
minute=0
start, end, name, s=music.split(",")
start_h,start_m=map(int,start.split(":"))
end_h,end_m=map(int,end.split(":"))
#재생시간 측정
if end_m>=start_m:
minute+=(end_m-start_m)
else:
end_h-=1
end_m+=60
minute+=(end_m-start_m)
minute+=60*(end_h-start_h)
#재생시간만큼 음길이 수정
# C# 처럼 #은 뒤의 알파벳과 하나의 음으로 생각해야한다
n=s.count("#")
if len(s)<=minute+n:
s*=(minute+n//len(s)+1)
else:
s=s[:minute+n]
# 기억하는 멜로디에 #이 붙은 경우 삭제
m2=m+"#"
s=s.replace(m2,'')
if m in s:
#멜로디를 가진 노래가 여러개인 경우 음이 가장 긴 것
#시간이 같은 경우는 먼저 나온 노래를 선택하도록 시간이 길 경우에만 값 대체
if max_m<minute:
answer=name
max_m= minute
if answer:
return answer
else:
return "(None)"
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 2] [해시] 위장 (0) | 2022.07.21 |
|---|---|
| [프로그래머스][Level 2][해시] 전화번호 목록 (0) | 2022.07.18 |
| [프로그래머스] [Level 2] [다이나믹 프로그래밍] 가장 큰 정사각형 찾기 (0) | 2022.06.20 |
| [프로그래머스] [Level 2] [2018 KAKAO BLIND RECRUITMENT 3차]압축 (0) | 2022.06.17 |
| [프로그래머스][Level 2] 영어 끝말잇기 (0) | 2022.06.15 |