연습장

31. 수열과 구간 쿼리 4 본문

프로그래머스/0단계

31. 수열과 구간 쿼리 4

js0616 2023. 6. 23. 22:47

Q . 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다.
각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 i가 k의 배수이면 arr[i]에 1을 더합니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.

 

제한사항

1 ≤ arr의 길이 ≤ 1,000
0 ≤ arr의 원소 ≤ 1,000,000
1 ≤ queries의 길이 ≤ 1,000
0 ≤ s ≤ e < arr의 길이
0 ≤ k ≤ 5

 


앞서 풀던것과 유사한 구조이다. 

[0, 4, 1] 로 보면

0 과 4 사이의 값 j 에 대해 j 가 k 의 배수이면 arr[j]에 1을 더한다. 

말 그대로 따라 해보면 

 

queries 의 배열을 가져 올 for 문 

가져온 queries의 배열 원소하나의 값에서 

범위 j 값에 대한 for 문을 넣고 

j 를 k 로 나눈 나머지가 0 인지 아닌지로 배수를 판단하여 

배수일 경우 arr[j] 에 1 을 더한다. 


 

function solution(arr, queries) {
    var answer = [];
    for (let i =0 ; i < queries.length ; i++){ // i = 0 1 2 이며 각각 
        for (let j = queries[i][0] ; j <= queries[i][1] ; j++){ // j = 0123  012  012 가 된다. 
            if( j%queries[i][2] ==0){
                arr[j] += 1
            }
        }
    }
    return arr;
}

 

 

'프로그래머스 > 0단계' 카테고리의 다른 글

33. 카운트 업  (0) 2023.06.23
32. 배열 만들기 2  (0) 2023.06.23
30. 수열과 구간 쿼리 2  (0) 2023.06.23
29. 수열과 구간 쿼리 3  (0) 2023.06.23
28. 수 조작하기 2  (0) 2023.06.20