def solution(progresses, speeds):
remains = [100 - i for i in progresses]
function_num = len(progresses)
work_days_ls = []
for i in range(function_num):
date_quotient = remains[i] // speeds[i]
date_remainder = remains[i] % speeds[i]
if date_remainder == 0 :
work_days_ls.append(date_quotient)
else:
work_days_ls.append(date_quotient+1)
init_value = work_days_ls[0]
cnt = 0
answer = []
for i in range(len(work_days_ls)):
if work_days_ls[i] - init_value <= 0:
cnt += 1
else :
answer.append(cnt)
init_value = work_days_ls[i]
cnt = 1
else :
answer.append(cnt)
return answer
필요한 작업 일수를 담고 있는 배열 work_days_ls를 먼저 구했다.
그 후 한번에 배포 되는 기능의 개수를 구하기 위해 기준점이 되는 값 init_value를 설정하였다. 이 init_value를 기존 work_days_ls의 성분에 뺐을 때 음수이면 init_value에 대응되는 기능과 함께 배포되는 기능인 것을 찾아냈다. 양수이면 init_value는 갱신된다. 왜냐하면 양수일 경우 그 기능은 이전 init_value에 해당하는 기능보다 더 작업일수가 많이 필요한 기능으로 함께 배포가 될 수 없어서 새로운 기준점이 필요하기 때문이다. for 루프가 다 돌았을 때, 마지막날 배포되는 기능이 제대로 answer에 들어가기 전에 for문에 else 구문을 추가해줬다.