본문 바로가기
Javascript/자바스크립트 문제

[Javascript : programmers] 수열과 구간 쿼리 1 (Lv.0)

by isfp_yykkng 2024. 8. 26.

[Javascript : programmers] 수열과 구간 쿼리 1 (Lv.0)

 

문제

 

나의 정답 풀이

function solution(arr, queries) {
    for(let q of queries){
        arr = arr.map((v,i)=> (i>=q[0]) && (i<=q[1]) ? v+1 : v)
    }
    return arr;
}

 

구조 분해를 통해서 이차원 배열인 quries에 들어있는 각 원소들을 s, e로 둔다.

arr의 각 인덱스가 s,e 사이에 있다면 v+1, 아니면 v를 반환하여 arr에 다시 저장한다.

이를 반복한 후 arr을 반환한다.

 

 

다른 사람 풀이

function solution(arr, queries) {
    for (let [s,e] of queries) for (let i=s; i<= e; i++) arr[i]++
    return arr
}

 

두번째 for 문에서 s~e 까지를 돌면서 for문으로 arr[i]++를 한다는 점이 차이점이다.

또한 첫번째 for 문에서 변수를 지정할 때 구조 분해를 통해서 변수를 지정하는 것이 편하다.