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


function solution(arr, flag) {
var answer = [];
return answer;
}
solution([3, 2, 4, 1, 3], [true, false, true, false, false]);
function solution(arr, flag) {
var answer = [];
flag.map((item, index) => {
if(item){
for(i=1; i <= arr[index] * 2; i++){
answer.push(arr[index])
}
}else {
for(i=1; i <= arr[index]; i++){
answer.pop()
}
}
})
return answer;
}
solution([3, 2, 4, 1, 3], [true, false, true, false, false]);
map을 활용하여 flag의 boolean 값이 true인지 아닌지를 if문으로 나눈다.true일 경우 해당 item의 index와 arr의 index가 같은 요소에 2를 곱한 값 만큼 for문을 돌린다.true인 0번 index와 같은 요소가 3이니까 3을 answer 배열에 3 * 2 = 6번 넣어준다.false일 경우 배열의 가장 뒤에서부터 item의 index와 arr의 index가 같은 요소의 갯수만큼 삭제한다.false인 1번 index와 같은 요소가 2이니까 answer 배열 맨 뒷 요소 2개를 삭제한다.