[JS] 빈 배열에 추가, 삭제하기 programmers

0

코딩테스트

목록 보기
67/80
post-thumbnail

🎀 문제

아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arrboolean 배열 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]);
  1. map을 활용하여 flagboolean 값이 true인지 아닌지를 if문으로 나눈다.
  2. true일 경우 해당 itemindexarrindex가 같은 요소에 2를 곱한 값 만큼 for문을 돌린다.
    ex) true0index와 같은 요소가 3이니까 3answer 배열에 3 * 2 = 6번 넣어준다.
  3. false일 경우 배열의 가장 뒤에서부터 itemindexarrindex가 같은 요소의 갯수만큼 삭제한다.
    ex) false1index와 같은 요소가 2이니까 answer 배열 맨 뒷 요소 2개를 삭제한다.
profile
일단 해. 그리고 잘 되면 잘 된 거, 잘 못되면 그냥 해본 거!

0개의 댓글