코린이의 소소한 공부노트

[프로그래머스/Lv.0] 빈 배열에 추가, 삭제하기 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.0] 빈 배열에 추가, 삭제하기

무지맘 2023. 5. 1. 17:05

1. Input, Output, Example

- 빈 배열 X에 대해, flag를 차례대로 순회하며 flag[i]true라면 X의 뒤에 arr[i]arr[i]*2번 추가하고, flag[i]false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 반환

 

2. Constraint

1) 1 arr의 길이 = flag의 길이 100

2) arr의 모든 원소는 1 이상 9 이하의 정수

3) 현재 X의 길이보다 더 많은 원소를 빼는 입력은 주어지지 않는다.

 

3. Code

1) 첫 코드(2023/05/01)

import java.util.*;
class Solution {
    public int[] solution(int[] arr, boolean[] flag) {
        ArrayList<Integer> list = new ArrayList<>();
        for(int i=0 ; i<flag.length ; i++){
            if(flag[i]){
                for(int j=0 ; j<arr[i]*2 ; j++)
                    list.add(arr[i]);
            } else
                for(int j=0 ; j<arr[i] ; j++)
                    list.remove(list.size()-1);
        }
        int[] answer = new int[list.size()];
        for(int i=0 ; i<answer.length ; i++)
            answer[i] = list.get(i);
        return answer;
    }
}