빈 배열에 추가, 삭제하기

아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고, flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 return 하는 solution 함수를 작성해 주세요.

빈 배열에 추가, 삭제하기Lv.0

181860

https://school.programmers.co.kr/learn/courses/30/lessons/181860?language=javascript

해설

  • Name
    flag 배열을 순회
    Type
    Description
    • flag[i]가 참이면 (true), arr[i] 값을 arr[i]의 두 배만큼 result 배열에 추가합니다. 예를 들어, arr[i]가 3이고 flag[i]가 참이면, result 배열에는 3이 6번 추가됩니다.

    • flag[i]가 거짓이면 (false), arr[i] 값만큼 result 배열에서 원소를 제거합니다. 예를 들어, arr[i]가 2이고 flag[i]가 거짓이면, result 배열의 마지막 2개 원소가 제거됩니다.

  • Name
    result 배열을 반환
    Type
    Description

    모든 조작이 끝나면, 최종적으로 수정된 result 배열을 반환합니다.

flag 배열의 각 값에 따라 arr 배열의 원소를 사용하여 result 배열에 원소를 추가하거나 제거합니다.

빈 배열에 추가, 삭제하기

function solution(arr, flag) {
    let result = [];
    for(let i = 0; i < flag.length; i++){
        if(flag[i]){
            for(let j = 0; j < arr[i] * 2; j++){
                result.push(arr[i]);
            }
        } else {
            for(let j = 0; j < arr[i]; j++){
                result.pop();
            }
        }
    }

    return result;
}