문제출처:https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3
접근법
각 기능은 이전 기능이 완료될 때까지 배포를 할 수 없으므로
progresses 배열을 index 0~len(progresses)-1 까지 순차적으로 접근한다.
k번째 기능의 경우에서 day일만큼 지났다고 가정하면
( 가장 바깥쪽의 while문을 빠져나온 뒤 배포가능한 기능들이 존재한다면 정답에 추가하여 최종 리턴 )
코드
def solution(progresses, speeds):
answer = []
s = 0
i,day = 0,0
while( i < len(progresses) ):
# 이미 완료된 기능
if( progresses[i] + day*speeds[i] >= 100 ):
s += 1
i += 1
continue
# 완료되지 않았을 경우, 이전 배포된 기능들의 개수를 정답에 추가
elif( s > 0):
answer.append(s)
s = 0
while( progresses[i] + day*speeds[i] < 100 ):
day += 1
s += 1 # 현재 기능 완료
i += 1 # 다음 기능
if( s > 0 ): answer.append(s) #
return answer