π λ¬Έμ μ€λͺ
λΌλμ€λ₯Ό μμ£Ό λ£λ λ€μ€λ λΌλμ€μμ λ°©κΈ λμλ μμ μ΄ λ¬΄μ¨ μμ μΈμ§ κΆκΈν΄μ§ λκ° λ§λ€. κ·Έλ΄ λ λ€μ€λ λ€μ ν¬νΈμ 'λ°©κΈκ·Έκ³‘' μλΉμ€λ₯Ό μ΄μ©νκ³€ νλ€. λ°©κΈκ·Έκ³‘μμλ TV, λΌλμ€ λ±μμ λμ¨ μμ μ κ΄ν΄ μ λͺ© λ±μ μ 보λ₯Ό μ 곡νλ μλΉμ€μ΄λ€.
λ€μ€λ μμ μ΄ κΈ°μ΅ν λ©λ‘λλ₯Ό κ°μ§κ³ λ°©κΈκ·Έκ³‘μ μ΄μ©ν΄ μμ μ μ°Ύλλ€. κ·Έλ°λ° λΌλμ€ λ°©μ‘μμλ ν μμ μ λ°λ³΅ν΄μ μ¬μν λλ μμ΄μ λ€μ€κ° κΈ°μ΅νκ³ μλ λ©λ‘λλ μμ λλΆλΆκ³Ό μ²μ λΆλΆμ΄ μ΄μ΄μ μ¬μλ λ©λ‘λμΌ μλ μλ€. λ°λλ‘, ν μμ μ μ€κ°μ λμ κ²½μ° μλ³Έ μμ μλ λ€μ€κ° κΈ°μ΅ν λ©λ‘λκ° λ€μ΄μλ€ ν΄λ κ·Έ κ³‘μ΄ λ€μ€κ° λ€μ κ³‘μ΄ μλ μλ μλ€. κ·Έλ κΈ° λλ¬Έμ λ€μ€λ κΈ°μ΅ν λ©λ‘λλ₯Ό μ¬μ μκ°κ³Ό μ 곡λ μ 보λ₯Ό μ§μ 보면μ λΉκ΅νλ €κ³ νλ€. λ€μκ³Ό κ°μ κ°μ μ ν λ λ€μ€κ° μ°ΎμΌλ €λ μμ μ μ λͺ©μ ꡬνμ¬λΌ.
- λ°©κΈκ·Έκ³‘ μλΉμ€μμλ μμ μ λͺ©, μ¬μμ΄ μμλκ³ λλ μκ°, μ 보λ₯Ό μ 곡νλ€.
- λ€μ€κ° κΈ°μ΅ν λ©λ‘λμ μ 보μ μ¬μ©λλ μμ C, C#, D, D#, E, F, F#, G, G#, A, A#, B 12κ°μ΄λ€.
- κ° μμ 1λΆμ 1κ°μ© μ¬μλλ€. μμ μ λ°λμ μ²μλΆν° μ¬μλλ©° μμ κΈΈμ΄λ³΄λ€ μ¬μλ μκ°μ΄ κΈΈ λλ μμ μ΄ λκΉ μμ΄ μ²μλΆν° λ°λ³΅ν΄μ μ¬μλλ€. μμ κΈΈμ΄λ³΄λ€ μ¬μλ μκ°μ΄ 짧μ λλ μ²μλΆν° μ¬μ μκ°λ§νΌλ§ μ¬μλλ€.
- μμ μ΄ 00:00λ₯Ό λ겨μκΉμ§ μ¬μλλ μΌμ μλ€.
- μ‘°κ±΄μ΄ μΌμΉνλ μμ μ΄ μ¬λ¬ κ°μΌ λμλ λΌλμ€μμ μ¬μλ μκ°μ΄ μ μΌ κΈ΄ μμ μ λͺ©μ λ°ννλ€. μ¬μλ μκ°λ κ°μ κ²½μ° λ¨Όμ μ λ ₯λ μμ μ λͺ©μ λ°ννλ€.
- μ‘°κ±΄μ΄ μΌμΉνλ μμ μ΄ μμ λμλ “(None)”μ λ°ννλ€.
μ λ ₯ νμ
μ λ ₯μΌλ‘ λ€μ€κ° κΈ°μ΅ν λ©λ‘λλ₯Ό λ΄μ λ¬Έμμ΄ mκ³Ό λ°©μ‘λ 곑μ μ 보λ₯Ό λ΄κ³ μλ λ°°μ΄ musicinfosκ° μ£Όμ΄μ§λ€.
- mμ μ 1κ° μ΄μ 1439κ° μ΄νλ‘ κ΅¬μ±λμ΄ μλ€.
- musicinfosλ 100κ° μ΄νμ 곑 μ 보λ₯Ό λ΄κ³ μλ λ°°μ΄λ‘, κ°κ°μ 곑 μ 보λ μμ
μ΄ μμν μκ°, λλ μκ°, μμ
μ λͺ©, μ
보 μ λ³΄κ° ','λ‘ κ΅¬λΆλ λ¬Έμμ΄μ΄λ€.
- μμ μ μμ μκ°κ³Ό λλ μκ°μ 24μκ° HH:MM νμμ΄λ€.
- μμ μ λͺ©μ ',' μ΄μΈμ μΆλ ₯ κ°λ₯ν λ¬Έμλ‘ ννλ κΈΈμ΄ 1 μ΄μ 64 μ΄νμ λ¬Έμμ΄μ΄λ€.
- μ 보 μ 보λ μ 1κ° μ΄μ 1439κ° μ΄νλ‘ κ΅¬μ±λμ΄ μλ€.
μΆλ ₯ νμ
쑰건과 μΌμΉνλ μμ μ λͺ©μ μΆλ ₯νλ€.
μ μΆλ ₯ μμ
"ABCDEFG" | ["12:00,12:14,HELLO,CDEFGAB", "13:00,13:05,WORLD,ABCDEF"] | "HELLO" |
"CC#BCC#BCC#BCC#B" | ["03:00,03:30,FOO,CC#B", "04:00,04:08,BAR,CC#BCC#BCC#B"] | "FOO" |
"ABC" | ["12:00,12:14,HELLO,C#DEFGAB", "13:00,13:05,WORLD,ABCDEF"] | "WORLD" |
μ€λͺ
첫 λ²μ§Έ μμμμ HELLOλ κΈΈμ΄κ° 7λΆμ΄μ§λ§ 12:00λΆν° 12:14κΉμ§ μ¬μλμμΌλ―λ‘ μ€μ λ‘ CDEFGABCDEFGABλ‘ μ¬μλμκ³ , μ΄ μ€μ κΈ°μ΅ν λ©λ‘λμΈ ABCDEFGκ° λ€μ΄μλ€.
μΈ λ²μ§Έ μμμμ HELLOλ C#DEFGABC#DEFGABλ‘, WORLDλ ABCDEλ‘ μ¬μλμλ€. HELLO μμ μλ ABC#μ κΈ°μ΅ν λ©λ‘λμΈ ABCμ μΌμΉνμ§ μκ³ , WORLD μμ μλ ABCκ° κΈ°μ΅ν λ©λ‘λμ μΌμΉνλ€.
π νμ΄ μ½λ
def solution(m, musicinfos):
answer = '(None)'
candidate = []
for index, info in enumerate(musicinfos):
start, end, song, melody = info.split(',')
a, b = map(int, start.split(':'))
c, d = map(int, end.split(':'))
playtime = c * 60 + d - a * 60 - b
melody_list = list(melody)
for idx, mel in enumerate(melody_list):
if mel == '#':
melody_list[idx-1] += '#'
melody_list = [mel for mel in melody_list if mel != '#']
length = len(melody_list)
real = ''
for i in range(playtime):
idx = i % length
real += melody_list[idx]
if m in real:
if real.count(m) > real.count(m+'#'):
candidate.append([playtime, song, index])
if candidate:
candidate.sort(key=lambda x:(-x[0], x[2]))
return candidate[0][1]
else:
return answer
μ νμ μΈ κ΅¬νλ¬Έμ μ΄λ€.
'#'μ λν μ²λ¦¬κ° μ€μνλ°, #μ 무쑰건 μλ°λ²³ λ€μ λΆλλ€.
λ€μ΄μ¨ μ 보λ₯Ό listλ‘ λ§λ€λ©΄ μμ νλμ© μͺΌκ°μ§κ² λλλ°, '#'λ§ λ¨μ μμλ μμ μμ λ¬Έμμ΄μ λν΄μ£Όκ³ , λμ€μ '#'μ 리μ€νΈμμ μ κ±°ν΄μ£Όλ©΄ λλ€.
κ·Έ ν, μμ μ μ°μμ¬μλλ―λ‘ νλ μ΄νμλ§νΌ λ°λ³΅μν¨λ€.
λ΄κ° λ€μλ λ©λ‘λκ° νλ μ΄νμλ§νΌ λ°λ³΅μν¨ μμ μ λ€μ΄μλ€λ©΄ ν보μ μ¬λ¦°λ€.
μ£Όμν μ μ, 'ABC' in 'ABC#' κ³Ό κ°μ κ²½μ°μ΄λ€. μ΄ μ‘°κ±΄μ Trueμ΄μ§λ§, Falseκ° λμ€λλ‘ λ§λ€μ΄μΌ νλ€.
λ°λΌμ real.count(m) > real.count(m+'#')μ 쑰건μ κ±Έμ΄ μμ κ°μ μΌμ λ°©μ§μμΌ°λ€.
μ΅μ’ μ μΌλ‘ νλ μ΄νμμ΄ λμ μμΌλ‘ μ λ ¬, λ€μμΌλ‘ 곑 μ 보 λ°°μ΄ μμͺ½μ μλ μμλλ‘ μ λ ¬μ μμΌ
κ°μ₯ μμ μμμ song μ 보λ₯Ό 리ν΄νλ©΄ μ λ΅μ΄λ€.
ν보μκ° μμΌλ©΄ '(None)'μ μΆλ ₯νλ€.
'π μ½λ©ν μ€νΈ λλΉ : PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] μ€ μλ λ°©λ² (level2, python) (1) | 2022.10.13 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] κ°μ₯ λ¨Ό λ Έλ (level3, python) (0) | 2022.10.13 |
[νλ‘κ·Έλλ¨Έμ€] νλ ¬ ν λ리 νμ (level2, python) (0) | 2022.10.13 |
[νλ‘κ·Έλλ¨Έμ€] κ΄νΈ λ³ν (level2, python) (0) | 2022.10.11 |
[νλ‘κ·Έλλ¨Έμ€] λ§€λ΄ λ¦¬λ΄μΌ (level2, python) (0) | 2022.10.10 |