URL : https://programmers.co.kr/learn/courses/30/lessons/42586

문제 풀이 : 어레이리스트 progresses에 speeds의 요소를 계속 더하면서, 첫번째 인덱스가 100이 넘으면 제거하며 Count를 늘려준다.

사용한 ArrayList 메소드 : 변수.add(), 변수.get(), 변수.set(), 변수.remove()

import java.util.*;
class FunctionDev {
    public int[] solution(int[] progresses, int[] speeds) {
        int[] answer = {};
        ArrayList<Integer> progressesAl = new ArrayList<Integer>();
        ArrayList<Integer> speedsAl = new ArrayList<Integer>();
        ArrayList<Integer> returnAl = new ArrayList<Integer>();
        for (int a : progresses) {
            progressesAl.add(a);
        }
        //System.out.println(progressesAl.toString());
        for (int a : speeds) {
            speedsAl.add(a);
        }
        //System.out.println(speedsAl.toString());
        while (!progressesAl.isEmpty()) {
            int c = 0;
            //작업시작
            for (int i = 0; i < progressesAl.size(); i++) {
                progressesAl.set(i, progressesAl.get(i) + speedsAl.get(i));
            }
            //System.out.println("progressesAl : "+ progressesAl.toString());
            //System.out.println("speedsAl : "+ speedsAl.toString());
            while (!progressesAl.isEmpty()) {
                //작업완료, 0번째에 있는 기능이 배포될 때 함께 배포
                if (progressesAl.get(0) >= 100) {
                    c++;
                    progressesAl.remove(0);
                    speedsAl.remove(0);
                } else {
                    break;
                }
            }
            if (c != 0) {
                //System.out.println("c : " + c);
                returnAl.add(c);
            }
        }
        answer = new int[returnAl.size()];

        for (int i = 0; i < returnAl.size(); i++) {
            answer[i] = returnAl.get(i);
        }
        return answer;
    }
}