Open geonnho0 opened 7 months ago
각 기능의 배포될 날짜를 구한 뒤, 해당 기능 이후의 기능들 중, 같은 날에 배포될 기능을 모두 찾아요. 배포될 기능의 개수를 구한 뒤, 배포될 기능들 중 마지막 기능 다음번에 위치한 기능에서 다시 위 과정을 수행해요.
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int n = progresses.length;
List<Integer> count = new ArrayList<>();
for (int i = 0; i < n; i++) {
int days = (int) Math.ceil((double) (100 - progresses[i]) / speeds[i]);
int j = i + 1;
for (; j < n; j++) {
if (progresses[j] + speeds[j] * days < 100)
break;
}
count.add(j - i);
i = j - 1;
}
return count.stream().mapToInt(Integer::intValue).toArray();
}
}
문제 링크