문제 설명
빈 배열 x가 있음. 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 x의 뒤에 arr[i]를 arr[i] x 2번 추가하고,
flag[i]가 false라면 x에서 마지막 arr[i]개의 원소를 제거한 뒤 x를 return 하는 solution함수를 작성해주세요.
import java.util.*;
class Solution {
public int[] solution(int[] arr, boolean[] flag) {
List<Integer> x =new ArrayList<>();
for(int i=0; i<arr.length; i++){
if(flag[i]){
for(int j=0; j<arr[i]*2; j++){
x.add(arr[i]);
}
}
else{
for(int j=0; j<arr[i]; j++){
x.remove(x.size()-1);
}
}
}
int [] result = new int[x.size()];
for(int i=0; i<x.size(); i++){
result[i]=x.get(i);
}
return result;
}
}
ArrayList는 동적배열이기 때문에 추가와 삭제가 쉽다.
add(), get(),size(), remove() 기억하기