09009
[프로그래머스 lv2] [3차] 방금그곡 본문
문제 보기
https://school.programmers.co.kr/learn/courses/30/lessons/17683
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해결
replace()를 사용하여 해결한다
소스 코드
import math
def solution(m, musicinfos):
answer = ''
answer = []
m = m.replace("C#", "c").replace("D#", "d").replace("F#", "f").replace("G#", "g").replace("A#", "a")
cnt = 0
for music in musicinfos:
start_time, end_time = music.split(',')[0], music.split(',')[1]
title, score = music.split(',')[2], music.split(',')[3]
minutes = int(end_time.split(':')[1]) - int(start_time.split(':')[1])
hour = int(end_time.split(':')[0]) - int(start_time.split(':')[0])
time = hour * 60 + minutes
score = score.replace("C#", "c").replace("D#", "d").replace("F#", "f").replace("G#", "g").replace("A#", "a")
if len(score) < time:
score *= math.ceil(time / len(score))
elif len(score) > time:
score = score[:time]
for i in range(len(score)):
if len(score) >= len(m):
if m == score[i:i+len(m)]:
cnt += 1
answer.append((title, time, cnt))
break
else:
continue
if len(answer) == 0:
return "(None)"
else:
return sorted(answer, key=lambda x:(-x[1], x[2]))[0][0]
import math
def solution(m, musicinfos):
answer = []
m = m.replace('C#', 'c').replace("D#", 'd').replace('F#', 'f').replace('G#','g').replace('A#','a')
for music in musicinfos:
start_time, end_time = music.split(',')[0], music.split(',')[1]
title, score = music.split(',')[2], music.split(',')[3]
score = score.replace('C#', 'c').replace("D#", 'd').replace('F#', 'f').replace('G#','g').replace('A#','a')
minutes = int(end_time.split(":")[1]) - int(start_time.split(":")[1])
hour = int(end_time.split(":")[0]) - int(start_time.split(":")[0])
play_time = hour * 60 + minutes
if len(score) < play_time:
score = score * math.ceil(play_time / len(score))
elif len(score) >= play_time:
score = score[:play_time]
for i in range(len(score)-len(m)+1):
if m == score[i:i+len(m)]:
answer.append((title, play_time))
break
if len(answer) == 0:
return "(None)"
else:
return sorted(answer, key=lambda x:(-x[1], x[0]))[0][0]
'Algorithm > 문자열' 카테고리의 다른 글
[프로그래머스 lv1] 개인정보 수집 유효기간 (0) | 2023.12.05 |
---|---|
[프로그래머스 lv1] 둘만의 암호 (0) | 2023.12.04 |
[프로그래머스 lv1] 가장 가까운 같은 글자 (0) | 2023.10.08 |
[프로그래머스 lv1] 숫자 문자열과 영단어 (0) | 2023.10.08 |
[프로그래머스 lv1] 가장 가까운 같은 글자 (0) | 2023.09.24 |
Comments