

def solution(progresses, speeds):
    answer = []
    count  = 0
    day    = 0
    
    while len(progresses) > 0:
        day+=1
        if 100-(progresses[0] + day*speeds[0]) <= 0:
            progresses.pop(0)
            speeds.pop(0)
            count+=1
            day-=1
        else:
            if count > 0:
                answer.append(count)
                count = 0
        
    answer.append(count)
    return answer
이 문제는 무조건 선입선출(FIFO)이 되어야하기 때문에 queue 자료구조를 염두하고 풀이하였다. queue의 경우 pop(0) 을 적재적소에 잘 사용해야 한다. 앞으로도 잘 기억해두자! 
count, day 변수를 미리 설정해두었다. 문제를 읽으면 어떤 변수가 새로 필요할지 잘 생각해야한다. 나는 아직 이것이 조금 서툰 것 같다. 연습!!
if문안에 day-=1을 한 이유는, count가 1이 올라가고 progresses에서 다음 인덱스의 요소도 같은 날에 기능 개산 작업이 끝났는지 확인해야 하는데 1을 안빼주면 다음 날짜에 확인한 것과 다름이 없어진다. 
from collections import deque
def solution(progresses, speeds):
    answer = []
    count  = 0
    day    = 0
    
    progresses = deque(progresses)
    speeds     = deque(speeds)
    
    while progresses:
        day+=1
        if (progresses[0] + speeds[0]*day) >= 100:
            count+=1
            progresses.popleft()
            speeds.popleft()
            day-=1
        else:
            if count > 0:
                answer.append(count)
                count = 0
    
    answer.append(count)        
    return answer