[프로그래머스 / C++] 수열과 구간 쿼리 4

YH·2023년 11월 29일
0

문제

수열과 구간 쿼리 4 : 문제 링크


문제 분석

  • 정수 배열 arr와 2차원 정수 배열 queries이 주어진다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴이다. 각 query마다 순서대로 s <= i <= e인 모든 i에 대해 ik의 배수이면 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;
}
profile
Keep Recycling Your Dreams

0개의 댓글