https://programmers.co.kr/learn/courses/30/lessons/42586
import math
def solution(progresses, speeds):
answer = []
remain = []
prev = 0
cnt = 1
for i, (p, s) in enumerate(zip(progresses, speeds)):
remain = math.ceil((100 - p) / s)
if (i == 0):
prev = remain
else:
if (prev >= remain):
cnt += 1
else:
answer.append(cnt)
cnt = 1
prev = remain
answer.append(cnt)
return answer
for
문을 돌면서 remain(현재 작업이 몇 일뒤에 끝나게 될지)
을 계산하고, i
가 0 이상이면 prev
와 현재 remain
을 비교해 prev
가 크거나 같으면 cnt += 1
, 작으면 answer
에 cnt
를 넣고 다시 prev
를 remain
으로 초기화한다. 가장 마지막 원소는 비교를 하지않기 때문에 남은 cnt
를 answer
에 넣고 리턴