[Programmers] κΈ°λ₯κ°λ°
Updated:
κΈ°λ₯κ°λ°
κΈ°λ₯κ°λ° μ ν΄λ¦νλ©΄ λ°λ‘ μ΄λνλ€.
νλ‘κ·Έλλ¨Έμ€ νμμλ κΈ°λ₯ κ°μ μμ μ μν μ€μ λλ€. κ° κΈ°λ₯μ μ§λκ° 100%μΌ λ μλΉμ€μ λ°μν μ μμ΅λλ€.
λ, κ° κΈ°λ₯μ κ°λ°μλλ λͺ¨λ λ€λ₯΄κΈ° λλ¬Έμ λ€μ μλ κΈ°λ₯μ΄ μμ μλ κΈ°λ₯λ³΄λ€ λ¨Όμ κ°λ°λ μ μκ³
μ΄λ λ€μ μλ κΈ°λ₯μ μμ μλ κΈ°λ₯μ΄ λ°°ν¬λ λ ν¨κ» λ°°ν¬λ©λλ€.
λ¨Όμ λ°°ν¬λμ΄μΌ νλ μμλλ‘ μμ μ μ§λκ° μ ν μ μ λ°°μ΄ progressesμ
κ° μμ μ κ°λ° μλκ° μ ν μ μ λ°°μ΄ speedsκ° μ£Όμ΄μ§ λ κ° λ°°ν¬λ§λ€ λͺ κ°μ κΈ°λ₯μ΄ λ°°ν¬λλμ§λ₯Ό
return νλλ‘ solution ν¨μλ₯Ό μμ±νμΈμ.
μ λ²μ νμλ Level 2 λ¬Έμ μ λ€λ₯΄κ² μμ£Ό μ¬μ λ λ¬Έμ !
κ° μμ μ΄ λ°°ν¬κΉμ§ λ©°μΉ κ±Έλ¦¬λ μ§ κ΅¬ν λ€ μ‘°κ±΄μ λ§κ² κ³μ° ν΄ μ£Όλ©΄ λλ€.
from math import ceil
def solution(progresses, speed):
answer = []
date = [ceil((100 - p) / s) for p, s in zip(progresses, speed)]
while date:
cnt = 1
check = date.pop(0)
while True:
try:
if check >= date[0]:
date.pop(0)
cnt += 1
else:
answer.append(cnt)
break
except IndexError:
answer.append(cnt)
break
return answer
list comprehension μ ν΅ν΄ λ°°ν¬κΉμ§ 걸리λ μΌ μ λ₯Ό μ μ₯νκ³
맨 μμμ λΆν° λ°°ν¬λ₯Ό ν λ ν λ²μ λ°°ν¬ λλ μμ κ°μλ₯Ό μ λ€.
첫 while λ¬Έμ λ€μ΄κ°λ popμ νκ³ λ€μ΄κ°κΈ° λλ¬Έμ λ§μ§λ§ μμμμλ IndexError κ° λ°μνλ€.
κ·Έλμ Try Except λ¬ΈμΌλ‘ μ‘μμ£Όμλ€.
ꡬ쑰 μμΌλ‘λ λ¨Όμ λ€μ΄μ¨ λ°μ΄ν°κ° λ¨Όμ λκ°λ νκ° λ μ ν©νλ€.
νμ§λ§ list λ‘ λ§λ λ€ pop(0) μ νλ©΄ queue ν¨μμΈ popleft() μ λμΌ νλ€.
queue λ₯Ό μ¬μ©νλ €λ©΄ collection μ μλ queue λ₯Ό import ν ν μ¬μ©ν΄μΌνλλ°..
λ¬΄μ¨ μ°¨μ΄κ° μλμ§ μμλ΄μΌκ² λ€.
μμ²λ μ°¨μ΄ λ°κ²¬ !
Leave a comment