기존 배열을 갱신하는 것인가? 아니면 새 배열에 편하게 작성하는 것인가
배열 원소가 계속 변경되므로 arrayList를 사용하는게 좋겠다
idx에 접근할 수 있는 for?
value에 접근할 수 있는 enhanced?
while?
-> flag와 arr 두개에 동시 사용해야 하니까 일반 for문으로 하는게 좋겠다
마지막에 int[] 형식으로 출력해야 하므로, list를 array에 변경하는 작업이 필요하겠군
그런데 Integer는 int가 아니므로 수동 변환을 해야겠다
list.add는 0번 index에 추가된다. 어떻게 뒤에 추가하는가?
1 - size로 접근해서 size, size+1에 추가한다
2 - 그런데 제거할때도 똑같이 매번 size를 도출해내야 하므로 앞 뒤를 바꿔서 그냥 앞에 넣어버리고 마지막에 reverse하느다
collections나 arrays sort 사용할 필요 없이 옮겨담을때 idx를 순회하면 된다
같은 value지만 idx와 value와 동시에 사용된다
작업 위치는 별도로 주어진다 -> 마지막 위치에서 작업하라
add는 특정 idx를 인자로 전달하지 않으면 뒤에 삽입된다
헷갈리지 말것
문제 발생시 /**/ 블록 주석 처리해주거나, if문이면 예제에 따라 바로 break로 출력해볼수도 있겠다
import java.util.ArrayList;
class Solution {
public int[] solution(int[] arr, boolean[] flag) {
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
int exp = arr[i];
if (flag[i]) {
for (int j = 0; j < 2*exp; j++) {
list.add(0, arr[i]);
}
} else {
while (exp > 0) {
list.remove(0);
exp--;
}
}
}
int L = list.size();
int[] answer = new int[L];
for (int i = 0; i < L; i++) {
answer[i] = list.get(L-1-i);
}
return answer;
}
}