
def solution(progresses, speeds):
m_idx, answer, days = 0, [], []
for i in range(len(progresses)):
days.append((100-progresses[i])//speeds[i] if (100-progresses[i])%speeds[i]==0
else (100-progresses[i])//speeds[i]+1)
for i in range(len(days)):
if days[m_idx]<days[i]:
answer.append(i-m_idx)
m_idx = i
answer.append(len(days)-m_idx)
return answer
deque 활용한 코드
from collections import deque
def solution(progresses, speeds):
answer, days = [], deque()
days.append((100-progresses[0])//speeds[0] if (100-progresses[0])%speeds[0]==0
else (100-progresses[0])//speeds[0]+1)
for i in range(1, len(progresses)):
d = ((100-progresses[i])//speeds[i] if (100-progresses[i])%speeds[i]==0
else (100-progresses[i])//speeds[i]+1)
p = days.popleft()
if d>p:
answer.append(len(days)+1)
days.clear()
else:
days.appendleft(p)
days.append(d)
answer.append(len(days))
return answer