import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] answer = {};
int length = progresses.length;
int[] days = new int[length];
for (int i = 0; i < length; i++) {
days[i] = (int) Math.ceil((100.0 - progresses[i]) / speeds[i]);
}
ArrayList<Integer> tmp = new ArrayList<>();
int d = days[0];
int n = 1;
for (int i = 1; i < length; i++) {
if (d < days[i]) {
tmp.add(n);
d = days[i];
n = 1;
}
else {
n++;
}
}
tmp.add(n);
answer = new int[tmp.size()];
for (int i = 0; i < answer.length; i++) {
answer[i] = tmp.get(i);
}
return answer;
}
}
기능별 배포까지 남은 날짜를 계산한 후
현재 최대 남은 날짜보다 작으면 배포가능한 기능 개수 추가,
크면 배포가능한 기능 개수를 저장한 후 1로 초기화하고 최대 남은 날짜를 갱신해주었다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges