프로그래머스 수열과 구간 쿼리 4

KIMYEONGJUN·2026년 5월 18일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

solution 메서드는 정수 배열 arr과 2차원 배열 queries를 입력받아, 쿼리 순서대로 주어진 조건을 적용한다.
각 쿼리 [s, e, k]에 대해서 인덱스 s부터 e까지 반복하며, 인덱스 i가 k의 배수인지 검사한다.
만약 k가 0이 아니고 인덱스가 k의 배수이면 해당 인덱스의 arr[i] 값을 1 증가시킨다.
모든 쿼리 처리가 끝나면 변형된 arr 배열을 반환한다.
main 메서드에서는 예제 입력을 생성하고 solution 메서드를 호출한다.
그 결과를 배열 형태로 받아와 Arrays.toString을 이용해 콘솔에 출력한다.

코드로 구현

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        for (int[] query : queries) {
            int s = query[0];
            int e = query[1];
            int k = query[2];
            for (int i = s; i <= e; i++) {
                if (k != 0 && i % k == 0) {
                    arr[i]++;
                }
            }
        }
        
        return arr;
    }
}

프로그래머스 코드

package programmers;

import java.util.Arrays;

// 프로그래머스 수열과 구간 쿼리 4
public class Main23 {
    // 쿼리를 적용하여 arr 배열을 변경한 후 결과를 반환하는 메서드이다.
    public static int[] solution(int[] arr, int[][] queries) {
        for (int[] query : queries) {
            int s = query[0];
            int e = query[1];
            int k = query[2];
            for (int i = s; i <= e; i++) {
                if (k != 0 && i % k == 0) {
                    arr[i]++;
                }
            }
        }
        return arr;
    }

    public static void main(String[] args) {
        int[] arr = {0, 1, 2, 4, 3};
        int[][] queries = {
                {0, 4, 1},
                {0, 3, 2},
                {0, 3, 3}
        };

        // solution 메서드를 호출해 결과를 받아 온다.
        int[] result = solution(arr, queries);

        // 변경된 배열을 출력한다.
        System.out.println(Arrays.toString(result));
    }
}

위에 있는 코드를 변경한 코드

마루리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글