문제
progresses 순서대로 기능 배포.
뒤 기능이 먼저 100%가 되어도, 앞 기능 배포 전까지 대기.
조건
- 기능 개수: 100개 이하
- 진행률: 100 미만
- 속도: 100 이하
- 배포: 하루 끝에 1번
- 앞 기능 배포 시, 완료된 뒤 기능도 함께 배포
핵심
- 완료일 = ceil((100 - 진행률) / 속도)
import java.io.*;
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int size = progresses.length;
int[] workdays = new int[size];
for(int i = 0 ; i < size; i++){
workdays[i] = (100-progresses[i]) % speeds[i] == 0
? (100-progresses[i]) / speeds[i]
: (100-progresses[i]) / speeds[i] + 1;
}
List<Integer> list = new ArrayList<>();
int listIdx = 0;
list.add(1);
int checkWait = workdays[0];
for(int i = 1 ; i < size ; i++){
if(workdays[i] <= checkWait) {
list.set(listIdx,list.get(listIdx)+1);
}
else{
list.add(1);
checkWait = workdays[i];
listIdx++;
}
}
return list.stream().mapToInt(i->i).toArray();
}
}