아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고, flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 return 하는 solution 함수를 작성해 주세요.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
public int[] solution(int[] arr, boolean[] flag) {
List<Integer> a = new ArrayList<>();
for(int i=0; i<arr.length;i++){
if(flag[i]){
for(int j=0; j<arr[i]*2;j++){
a.add(arr[i]);
}
}
else {
for(int j=0; j<arr[i];j++){
a.remove(a.size()-1);
}
}
}
int[] answer=new int[a.size()];
for(int i=0; i<a.size();i++){
answer[i]=a.get(i);
}
return answer;
}
}
문제에 조건대로 false true 일때를 나눠서 해주면된다.
적절히 add 와 remove 이용해서 리스트를 만들어주고
마지막에 그 리스트를 답변 배열에 넣어주면 끝!!!
'자바 알고리즘 문제' 카테고리의 다른 글
수열과 구간 쿼리 1 (0) | 2024.04.24 |
---|---|
글자 지우기 (0) | 2024.04.24 |
중복된 문자 제거 (0) | 2024.04.23 |
문자열 정렬하기 (1) (0) | 2024.04.20 |
정수를 나선형으로 배치하기 (0) | 2024.04.16 |