각 배포마다 몇 개의 기능이 배포되는지 구하기.
progresses | speeds | return |
---|---|---|
[93, 30, 55] | [1, 30, 5] | [2, 1] |
[95, 90, 99, 99, 80, 99] | [1, 1, 1, 1, 1, 1] | [1, 3, 2] |
각 기능마다 완료까지 걸리는 일수를 리스트에 저장할건데 앞의 기능이 배포되지 못하면 일찍 끝나도 배포가 되지 못하기 때문에, 리스트의 max값과 비교하여 둘 중 계산된 값이 더 큰 수를 저장한다.
Counter모듈을 이용해 기능 개수를 알아낸다.
from math import ceil
from collections import Counter
def solution(progresses, speeds):
ans = [0]
answer = []
for p, s in zip(progresses, speeds):
ans.append(max(ans[-1], ceil((100-p)/s)))
ans = ans[1:]
for k, v in Counter(ans).items():
answer.append(v)
return answer