각각의 진도율에 각각의 속도가 하루가 지나면서 더해진다.
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int pointer = 0; // 현재 가르키는 index
int count = 0; // 완료된 개수
int[] answer = {}; // return
// 해당 index가 progressess를 다 탐색할때까지 반복
while (pointer < progresses.length) {
// 하루가 지나면 각각의 속도를 더해준다
for (int i = pointer; i < progresses.length; i++)
progresses[i] += speeds[i];
// 완료된 개수 초기화
count = 0;
// 완료된 개수 확인하는 로직
while (pointer < progresses.length && progresses[pointer] >= 100) {
pointer++;
count++;
}
// 완료된 것이 있으면 answer에 저장
if (count != 0) {
// 임시 배열을 선언하고 완료된 개수 하나 저장
int[] temp = new int[] { count };
// answer 배열 길이 1씩 더 늘려줌
answer = Arrays.copyOfRange(answer, 0, answer.length + 1);
// answer에 temp값 넣기
System.arraycopy(temp, 0, answer, answer.length - 1, temp.length);
}
}
return answer;
}
}
progeresses는 int array인데 이를 pointer를 이용해서 어떤 값을 가르키고 있는지를 인식해서 Queue처럼 사용하고자 한다.