문제링크

https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

def solution(progresses, speeds):
    answer = []
    t, cnt = 0, 0
    while len(progresses) > 0:
        if progresses[0] + t*speeds[0] >= 100:
            progresses.pop(0)
            speeds.pop(0)
            cnt += 1
        else:
            if cnt > 0:
                answer.append(cnt)
                cnt = 0
            t += 1
    answer.append(cnt)
    return answer

100이 넘을때까지 전체 작업 진도를 진행시키고 작업진도>=100 이 됐을 때 맨 앞의 요소를 pop 하고 count를 증가시킨다.

작업 진도가 100이 넘지 않을때에는 count의 값이 0을 넘는지 확인하고 넘는다면 하루의 배포가 진행됐다는 것이니 answer에 추가해주고 count는 0으로 초기화한다. t는 개발 진행중인 일정로 치기 때문에 100을 넘기지 못하면 하루 증가.

리스트가 모두 비워졌을 때 남은 배포도 추가하기 위해 answer에 남은 카운트 값을 삽입한다.