기능 개발
progresses의 값들과 speeds의 값들을 이용해서 각 기능이 배포까지 몇 일이나 걸리는지 구한다.
이 때 배포는 하루의 끝에 이루어진다고 가정하기 때문에 올림을 사용해야한다.올림을 사용할 때
ceil
을 사용하지 않고
-((p - 100) // s)
와 같이 계산하여 올림을 구현했다.위 과정에서각 기능의 배포일을 days배열에 저장하는데,
뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발되더라도 앞에 있는 기능이 배포될 때 함께 배포되어야 하므로,현재 기능의 배포일이 이전 기능의 배포일보다 더 늦다면 이전 기능을 배포하고(answer 배열에 1 append)
그게 아니라면 이전 기능의 배포와 함께 배포하므로 answer 배열의 마지막 값에 1을 더해준다.
결과적으로 answer배열에는 배포날이 몇 개인지 그리고 각 몇개의 기능을 배포하는지 저장된다.
def solution(progresses, speeds): answer = [] days = [] for p, s in zip(progresses, speeds): day = -((p - 100) // s) if not len(days) or day > days[-1]: days.append(day) answer.append(1) else: answer[-1] += 1 return answer