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; } }