기능개발


프로그래머스 [기능개발]

문제보기
Alt text

소스코드

import java.util.ArrayList;
import java.util.List;

class Solution {
   public List<Integer> solution(int[] progresses, int[] speeds) {
         List<Integer> deployCntList = new ArrayList<>();
        int day = 0;
        int deployCnt = 0;

        for (int i = 0; i < progresses.length; i++) {
            int duration = (100 - progresses[i]) / speeds[i];
            int lastTake = (100 - progresses[i]) % speeds[i];

            // 작업일이 하루 더 필요한 경우
            if (lastTake != 0 && speeds[i] != 1) {
                duration++;
            }

            if (i == 0) {
                day = duration;
                deployCnt = 1;
                continue;
            }

            if (duration > day) {
                deployCntList.add(deployCnt);
                day = duration;
                deployCnt = 1;
            } else {
                deployCnt++;
            }
        }
        deployCntList.add(deployCnt); // 마지막 구간 배포 추가

        return deployCntList;
    }
}