Development/CodingTest
[프로그래머스] Java 기능개발
Kirok Kim
2021. 12. 13. 21:51
import java.util.ArrayList;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
ArrayList<Integer> aanswer = new ArrayList<>();
ArrayList<Integer> ll = new ArrayList<>();
int cnt=0;
for(int i=0; i<progresses.length;i++){
int l=progresses[i];
while(l<100){
l+=speeds[i];
cnt++;
}
ll.add(cnt);
cnt=0;
}
cnt = 1;
int j = 0;
while (true) {
if (ll.get(j) >= ll.get(j + 1)) {
ll.remove(j + 1);
cnt++;
} else {
j++;
aanswer.add(cnt);
cnt = 1;
}
if (ll.size() - 1 == j) {
aanswer.add(cnt);
break;
}
}
int[] answer = new int[aanswer.size()];
for (int i = 0; i < aanswer.size(); i++) {
answer[i] = aanswer.get(i);
}
return answer;
}
}
- 최초에는 기존 그대로 배열에다가 담으려 했지만 index범위 초과로 골머리를 앓다가 간단히 arraylist로 전향하여 썼다.
- 업무의 진행은 동시에 진행되며 100이 넘지 않는 동안 계속 더해주며 list에 cnt를 세어 넣었다.
- 다만 좀 아쉬운 부분이 있다면 제일 마지막 부분 ArrayList를 Array로 바꿔 주는 부분을 반복문을 통해 변환 하는 것 말고 메소드를 통해서 변환하는 것을 염두해 보자
반응형