import math
def solution(progresses, speeds):
answer = []
days = [] # 작업 일 수
for i in range(len(progresses)):
d = math.ceil((100 - progresses[i])/speeds[i])
days.append(d)
count = 0
max_day = days[0]
for day in days:
if day <= max_day:
# 묻어가기
count += 1
else:
answer.append(count)
max_day = day
count = 1 # 현재 day추가
answer.append(count) # 마지막 배포
return answer
앞에 있는 기능이 배포되어야 뒤에 있는 기능도 배포 가능.
-> FIFO(큐)
첫번째 기능이 완료되면 두번째 기능이 완료되지 않아도 세번째 기능을 배포 가능하다고 생각했다. 그러나 이 문제는 앞에 기능이 완료되어야 뒤에 기능도 배포 가능하기 때문에 불가능하다. 따라서 O(N)으로 탐색이 가능하다.
이중 for문 쓰지 말고, max_day (기준값) 변수 하나만 갱신하면 된다.