[python 3]開発プログラマー機能


質問元:https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3
方法
各機能は、以前の機能が完了するまで導入できません.
progress配列をindex 0~len(progress)-1に順次近づけます.
k番目の機能については,1日が過ぎたと仮定する.
  • 完了した機能(進捗[i]+day*速度[i]>=100)
  • は同じ日に配布できます.( s+=1 )
  • 未完成時は
  • が配備可能な機能がある場合(s>0)、正解に
  • を追加します.
  • の導入可能日をスキップし、導入可能機能を追加する数(s+=1)
    while( progresses[i] + day*speeds[i] < 100 ):
    day += 1
  • (一番外側のwhile文から離れて配置可能な機能がある場合は、正解に追加して最後の文に戻ります)
    コード#コード#
    def solution(progresses, speeds):
        answer = []
        s = 0 
        i,day = 0,0
        while( i < len(progresses) ):
            # 이미 완료된 기능
            if( progresses[i] + day*speeds[i] >= 100 ): 
                s += 1
                i += 1
                continue
            # 완료되지 않았을 경우, 이전 배포된 기능들의 개수를 정답에 추가
            elif( s > 0):
                answer.append(s)
                s = 0
            while( progresses[i] + day*speeds[i] < 100 ):
                day += 1
            s += 1 # 현재 기능 완료
            i += 1 # 다음 기능
        if( s > 0 ): answer.append(s) #
        return answer