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

woodstock·2024년 3월 4일
0

코딩테스트

목록 보기
56/56
post-thumbnail

빈 배열에 추가, 삭제하기

문제설명

아무 원소도 들어있지 않은 빈 배열 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 = [];
    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 {
            answer.splice(-arr[i], arr[i]);
        }
    }
    return answer;
}

풀이해설

answer.splice(-arr[i], arr[i]);
  • splice(start, deleteCount)
  • 배열에서 요소를 추가하거나 제거할 때 사용되며, 변경을 시작할 인덱스와 제거할 요소의 수를 인자로 받는다.
  • splice는 원본 배열을 직접 변경한다.
  • -arr[i]는 배열의 끝에서부터 arr[i]개의 요소를 가리킨다.
    ex) answer.splice(-2, 2)는 배열의 마지막 두 요소를 제거한다.
profile
해내는 사람

0개의 댓글