자바 알고리즘 문제

빈 배열에 추가, 삭제하기

쿠키키키키 2024. 4. 23. 15:59

아무 원소도 들어있지 않은 빈 배열 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