//////
Search

11 / 10 [도전] 기능 개발 문제

생성일
2022/10/11 07:26
태그
@김기헌
최종 편집자
public int[] solution(int[] progresses, int[] speeds) { ArrayList<Integer> arrayList = new ArrayList<>(); int cur = 0, flag = 0; //cur = 앞에서부터 봤을 때 완료되지 않은 가장 앞에 있는 인덱스 번호 while (cur < progresses.length) { for (int i = cur; i < progresses.length; i++) { if (progresses[i] >= 100) continue; progresses[i] += speeds[i]; // 진행상황이 100이 안됐을 경우 각각 진행상황마다 개발 속도만큼 더해줌 } for (int i = cur; i < progresses.length; i++) { if (progresses[i] < 100) break; flag = i + 1; //flag: 앞에 완성한 개발 갯수를 뛰어 넘어 다음 cur의 인덱스 번호를 알려줌 //ex) progress[0],[1] 2개가 진행상황이 100을 넘었을 때 // 다음부터는 3번째 부터 검사하기 위해flag=2 } if (flag != cur) { //flag != cur 이라는 것은 앞에 완성된 개발이 있다는 것 arrayList.add(flag - cur); cur = flag; } } int[] answer = new int[arrayList.size()]; for (int i = 0; i < answer.length; i++) { answer[i] = arrayList.get(i); } return answer; }
Java
복사