본문 바로가기
기초다지기/JS 코딩테스트

javaScript 배열 조각하기

by 김빵그 2023. 11. 21.

문제 

정수 배열 arr와 query가 주어지고
query를 순회하며 짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외한 뒷부분을 잘라 버리고, 홀수 인덱스에서는 arr에서 query[i] 인덱스 제외하고 앞부분을 잘라 버린 계산식을 구하여라

나의 풀이 

function solution(arr, query) {
    var i = 0;
    var array = arr;
    while (i < query.length) {
        const a = query[i];
        if (i % 2 === 0) {
            arr = arr.slice(0, a + 1);
        } else {
            arr = arr.slice(a);
        }

        i++;
    }

    return arr;
}
  • 변수 초기화 
    • var i = 0 : 현재 쿼리 배열의 인덱스를 추적하는 변수 i 초기화
  • while 
    • query의 각 요소를 반복 루프 
    • 현재 query 배열에서 요소를 가져와 변수 a에 할당한다
  • if 조건문
    • 현재 인덱스 i가 짝수인지 홀수인지 확인 
    • 짝수인경우 배열 arr를 0부터 a + 1까지 잘라내어 수정
    • 홀수인경우 배열 arr를 인덱스 a부터 끝까지 잘라내어 수정
  • i++ 루프 반복 

다른 코드

function solution(arr, query) {
    let start = 0;
    let end = 0;

    for(let i = 0; i < query.length; i++){
        if(i%2===0){
            end = start + query[i];
        } else {
            start += query[i];
        }
    }
    return arr.slice(start, end).length ?
        arr.slice(start, end) : [-1]
}
  • for 루프사용 
    • 짝수인덱스일때 end 값을 업데이트
    • 홀수인덱스일때 start 값을 업데이트 해준다