[프로그래머스 Level2] 방금그곡
📃 문제 설명
방금그곡
👨💻 해결 방법
재생시간이 몇분인지 계산
하고,
그 재생시간 동안 실제로 라디오에서 재생된 음정들을 구해서 저장한다.
그리고 그것을 네오가 기억한 멜로디와 비교해서 결과를 구하면 된다.
그런데 음정들이 문자열로 주어지는데 #
이 포함되어 있어서 이를 처리하기 위해 문자열을 리스트로 바꾸어 처리해주었다.
👨💻 소스 코드
def solution(m, musicinfos):
dic = {}
for mf in musicinfos:
info = mf.split(',')
si = int(info[1][:2]) - int(info[0][:2])
bun = int(info[1][3:]) - int(info[0][3:])
time = si * 60 + bun
songName = info[2]
sheet = info[3]
realSheet = []
for s in sheet:
if s == '#':
realSheet[-1] += s
else:
realSheet.append(s)
radio = []
for i in range(time):
radio.append(realSheet[i % len(realSheet)])
for i in range(len(radio)):
if ''.join(radio[i:i + len(m) - m.count('#')]) == m:
dic[songName] = time
if not dic:
return "(None)"
dic = sorted(dic.items(), key=lambda x: x[1], reverse=True)
return dic[0][0]
Author And Source
이 문제에 관하여([프로그래머스 Level2] 방금그곡), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@choiyunh/프로그래머스-Level2-방금그곡
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
방금그곡
재생시간이 몇분인지 계산
하고,그 재생시간 동안
실제로 라디오에서 재생된 음정들을 구해서 저장한다.
그리고 그것을
네오가 기억한 멜로디와 비교해서 결과를 구하면 된다.
그런데 음정들이 문자열로 주어지는데
#
이 포함되어 있어서 이를 처리하기 위해 문자열을 리스트로 바꾸어 처리해주었다.
👨💻 소스 코드
def solution(m, musicinfos):
dic = {}
for mf in musicinfos:
info = mf.split(',')
si = int(info[1][:2]) - int(info[0][:2])
bun = int(info[1][3:]) - int(info[0][3:])
time = si * 60 + bun
songName = info[2]
sheet = info[3]
realSheet = []
for s in sheet:
if s == '#':
realSheet[-1] += s
else:
realSheet.append(s)
radio = []
for i in range(time):
radio.append(realSheet[i % len(realSheet)])
for i in range(len(radio)):
if ''.join(radio[i:i + len(m) - m.count('#')]) == m:
dic[songName] = time
if not dic:
return "(None)"
dic = sorted(dic.items(), key=lambda x: x[1], reverse=True)
return dic[0][0]
Author And Source
이 문제에 관하여([프로그래머스 Level2] 방금그곡), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@choiyunh/프로그래머스-Level2-방금그곡
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def solution(m, musicinfos):
dic = {}
for mf in musicinfos:
info = mf.split(',')
si = int(info[1][:2]) - int(info[0][:2])
bun = int(info[1][3:]) - int(info[0][3:])
time = si * 60 + bun
songName = info[2]
sheet = info[3]
realSheet = []
for s in sheet:
if s == '#':
realSheet[-1] += s
else:
realSheet.append(s)
radio = []
for i in range(time):
radio.append(realSheet[i % len(realSheet)])
for i in range(len(radio)):
if ''.join(radio[i:i + len(m) - m.count('#')]) == m:
dic[songName] = time
if not dic:
return "(None)"
dic = sorted(dic.items(), key=lambda x: x[1], reverse=True)
return dic[0][0]
Author And Source
이 문제에 관하여([프로그래머스 Level2] 방금그곡), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@choiyunh/프로그래머스-Level2-방금그곡저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)