[Lv.0] 수열과 구간 쿼리 1

woodstock·2024년 2월 23일
0

코딩테스트

목록 보기
47/56
post-thumbnail

수열과 구간 쿼리 1

문제설명

정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e] 꼴입니다.

query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 arr[i]에 1을 더합니다.

위 규칙에 따라 queries를 처리한 이후의 arrreturn 하는 solution 함수를 완성해 주세요.

풀이

풀이 1.

function solution(arr, queries) {    
    for (let i = 0; i < queries.length; i++) {
        const start = queries[i][0];
        const end = queries[i][1];
        for (let j = start; j <= end; j++) {
            arr[j] += 1;
        }
    }
    return arr;
}

풀이 2.

function solution(arr, queries) {
    queries.forEach(([s, e]) => {
        while (s <= e) arr[s++]++;
    });
    return arr;
}

풀이해설

queries.forEach(([s, e]) => {});
  • forEach 메서드는 배열의 각 요소에 대해 주어진 함수를 실행하는데, 이때 배열의 각 요소를 함수의 인자로 전달한다.
  • 구조 분해 할당을 사용하면, 이 배열의 요소를 더 쉽게 다룰 수 있다.
profile
해내는 사람

0개의 댓글