아무 원소도 들어있지 않은 빈 배열 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
개를 삭제한다.