코드
function solution(arr, flag) { var answer = []; for(let i=0; i<flag.length; i++) { if(flag[i]==true) { for(let j=0; j<arr[i]*2; j++) { answer.push(arr[i]) } } else { for(let j=0; j<arr[i]; j++) { answer.pop() } } } return answer; }
설명
i for문은 배열 flag의 길이만큼 순회한다. i번째 인덱스가 true라면 인덱스 값의 두 배만큼 해당 인덱스 값을 answer에 저장한다. 아니라면 인덱스 값만큼 answer의 끝 인덱스를 삭제한다.
코드가 너무 직관적인 거 같아서, 좀 더 효율적인 방법으로 풀 수 없을까 고민 중...