[Programmers] λ°©κΈκ·Έκ³‘
Updated:
λ°©κΈκ·Έκ³‘
λ°©κΈκ·Έκ³‘ μ ν΄λ¦νλ©΄ λ°λ‘ μ΄λνλ€.
μ΄ λ¬Έμ λ μΈ κ°μ§ 쑰건μ ν΄κ²° νλ©΄ λλ λ¬Έμ μ΄λ€.
- μ£Όμ΄μ§ λ¬Έμμ΄μ μμμκ°, μ’ λ£μκ°, λ Έλμ΄λ¦, λ©λ‘λ λ‘ λλλ κ²
- λ¬Έμμ΄λ‘ λμ΄μλ μμμκ°, μ’ λ£μκ°μ ν΅ν΄ λ Έλκ° μ¬μ λ μκ°μ ꡬνλ κ²
- μ¬μ λ μκ°μ ν΅ν΄ λ Έλ μ΄λ¦κ³Ό μ¬μ λ λ©λ‘λλ₯Ό ꡬνλ κ²
μ΄λ κ² κ΅¬νλ©΄ μ λ΅μ μ°Ύμ μ μλ€.
λ¨Όμ split(β,β) μ μ΄μ©ν΄ μμμκ°, μ’ λ£μκ°, λ Έλμ΄λ¦, λ©λ‘λλ₯Ό λλμ΄ λ¦¬μ€νΈμ μ μ₯νλ€.
κ·Έλ¦¬κ³ # μ΄ λΆμ λ©λ‘λλ λμ€μ κ³μ°ν λ 골μΉκ° μν μ λ μλ€. λλ¬Έμ νΉμ κΈ°νΈλ‘ μΉν ν΄ μ€λ€.
μμμκ°κ³Ό μ’ λ£μκ°μ λ€μ split(β:β) μ μ΄μ©ν΄ λλλ€ μ μλ‘ λ°κΎΌλ€.
μ΄λ μμ λΆ λ³΄λ€ μ’
λ£ λΆμ΄ λ ν° κ²½μ°λ κ·Έλλ‘ κ³μ°νλ©΄ λμ§λ§ μ’
λ£ λΆμ΄ λ μμ κ²½μ°μλ λ€λ₯Έ λ°©λ²μΌλ‘ κ³μ°μ νλ€.
μ΄μ°¨νΌ μ¬μ μκ°λ§ ꡬνλ©΄ λλ κ² μ΄κΈ° λλ¬Έμ μ’ λ£ μκ°μ λΆμΌλ‘ λ°κΎΈκ³ μμ μκ°μ λΆμΌλ‘ λ°κΏ λΉΌμ£ΌκΈ°λ§ νλ©΄ λλ€.
μ΄μ λ Έλμ μ¬μ μκ°μ ꡬνλ€λ©΄ κ·Έμ λ§κ² λ©λ‘λλ₯Ό λ§λ€μ΄ μ£Όλ©΄ λλ€.
λ Έλ λ©λ‘λλ³΄λ€ μ¬μ μκ°μ΄ κΈΈ μλ μκΈ° λλ¬Έμ μνν΄μ μ μ₯νλλ‘ νλ€.
λ΄κ° λ€μ λ©λ‘λκ° μ¬μ λ λ Έλ λ©λ‘λ μμ μλ€λ©΄ μ¬μ λ λ©λ‘λμ κΈΈμ΄μ λ Έλ μ΄λ¦μ μ μ₯νλ€.
λ§μ§λ§μΌλ‘ μ°Ύκ³ μ νλ μμ μ΄ μλ κ²½μ° None μ λ°ν, ν κ°μΈ κ²½μ° κ·Έλλ‘ λ°ν νλ©΄ λλ€.
νμ§λ§ μ°Ύκ³ μ νλ μμ μ΄ μ¬λ¬ κ° μΈ κ²½μ° μ¬μ μκ°μ΄ μ μΌ κΈ΄ κ²μ μΆλ ₯νκ³ μ¬μ μκ°λ κ°λ€λ©΄ λ¨Όμ μ λ ₯ λ λ Έλλ₯Ό μΆλ ₯νλ€.
def get_time(start, end):
start_time = start.split(':')
start_h = int(start_time[0])
start_m = int(start_time[1])
end_time = end.split(':')
end_h = int(end_time[0])
end_m = int(end_time[1])
# if start_m <= end_m: # μμ λΆ λ³΄λ€ μ’
λ£ λΆμ΄ λ ν¬κ±°λ κ° κ²½μ°, μμ κ²½μ°
# runtime = (end_h - start_h) * 60 + (end_m - start_m)
# else:
# runtime = (end_h - start_h - 1) * 60 + (60 - start_m) + end_m
return (end_h * 60 + end_m) - (start_h * 60 + start_m)
def solution(m, musicinfos):
song = dict()
info = [val.split(',') for val in musicinfos] # μμμκ°, μ’
λ£μκ°, λ
Έλμ΄λ¦, λ©λ‘λλ‘ λλκΈ°
m = m.replace('C#', '$') # #μ΄ λΆμ λ©λ‘λλ κ³μ°νκΈ° νΈνκ² μΉννλ€
m = m.replace('D#', '%')
m = m.replace('F#', '^')
m = m.replace('G#', '&')
m = m.replace('A#', '*')
for val in info:
val[3] = val[3].replace('C#', '$')
val[3] = val[3].replace('D#', '%')
val[3] = val[3].replace('F#', '^')
val[3] = val[3].replace('G#', '&')
val[3] = val[3].replace('A#', '*')
runtime = get_time(val[0], val[1])
melody = ''
for idx in range(runtime): # μ¬μ μκ°λ§νΌ λ©λ‘λλ₯Ό λ΄λλ€
melody += val[3][idx % len(val[3])]
song[val[2]] = melody
answer = list()
for val in song.items(): # μ°Ύκ³ μ νλ μμ
μ λͺ¨λ λ΄λλ€
if m in val[1]:
answer.append([val[0], len(val[1])])
if len(answer) == 0: # μ°Ύκ³ μ νλ μμ
μ΄ μλ κ²½μ°, ν κ°μΈ κ²½μ°, μ¬λ¬ κ°μΈ κ²½μ° μ‘°κ±΄
return '(None)'
elif len(answer) == 1:
return answer[0][0]
else:
longest = max([val[1] for val in answer])
for val in answer:
if longest == val[1]:
return val[0]
λ¬Έμ λ₯Ό κΌΌκΌΌν μ½μ΄μΌκ² λ€.. μ²μμ νμμ λ λ 30κ°μ ν μ€νΈ μΌμ΄μ€ μ€μ 3κ°κ° νλ Έμλ€.
μ΄μ λ₯Ό νμ°Έ λͺ» μ°Ύκ³ μλ€κ° λ΅μ΄ μ¬λ¬ κ° μΈ κ²½μ° μ‘°κ±΄μ λ§μΆ° μΆλ ₯ νλ μ½λ©μ ν΄μ£Όμ§ μμλ€λ κ²μ μμλ€.
쑰건μ λ§λ€μ΄ μ£Όλ λͺ¨λ λ§μλ€..
Leave a comment