# Programmers 기능개발

## Solution

from collections import Counter

def solution(progresses, speeds):
deploy = []

day = 0
while progresses:
if progresses[0] + day * speeds[0] >= 100:
deploy.append(day)
progresses.pop(0)
speeds.pop(0)
continue
day += 1
return list(Counter(deploy).values())

print(solution([93, 30, 55], [1, 30, 5]))
print(solution([95, 90, 99, 99, 80, 99], [1, 1, 1, 1, 1, 1]))
print(solution([20, 99, 93, 30, 55, 10], [5, 10, 1, 1, 30, 5]))
• 다른 사람 풀이 1
def solution(progresses, speeds):
Q=[]
for p, s in zip(progresses, speeds):
if len(Q)==0 or Q[-1][0]<-((p-100)//s):
Q.append([-((p-100)//s),1])
else:
Q[-1][1]+=1
return [q[1] for q in Q]
• 다른 사람 풀이 2
from math import ceil

def solution(progresses, speeds):
daysLeft = list(map(lambda x: (ceil((100 - progresses[x]) / speeds[x])), range(len(progresses))))
count = 1
retList = []

for i in range(len(daysLeft)):
try:
if daysLeft[i] < daysLeft[i + 1]:
retList.append(count)
count = 1
else:
daysLeft[i + 1] = daysLeft[i]
count += 1
except IndexError:
retList.append(count)

return retList