문제
수열과 구간 쿼리 4 : 문제 링크
문제 분석
- 정수 배열 arr와 2차원 정수 배열 queries이 주어진다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴이다. 각 query마다 순서대로 s <= i <= e인 모든 i에 대해 i가 k의 배수이면 arr[i]에 1을 더한다. 위 규칙에 따라 queries를 처리한 이후의 arr를 return
- 첫번째 for loop를 통해 queries의 정수 배열을 순환하고, 두번째 for loop의 초기화식은 s(queries[i][0]), 조건식은 e(queries[i][0]) 이하로 설정. if문을 통해 해당 인덱스(j)를 k(queries[i][2])로 나눈 나머지가 0이면 배수이므로, 해당 인덱스의 원소에 1을 더함. loop를 탈출한 후, 최종적으로 저장된 arr을 return
풀이
#include <vector>
using namespace std;
vector<int> solution(vector<int> arr, vector<vector<int>> queries) {
for(int i = 0; i < queries.size(); ++i) {
for(int j = queries[i][0]; j <= queries[i][1]; ++j) {
if(j % queries[i][2] == 0) arr[j] += 1;
}
}
return arr;
}