연습장
31. 수열과 구간 쿼리 4 본문
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 |