loading
본문 바로가기
Coding/Programers

[ Programmers ] 수열과 구간 쿼리 1 ( java ) 70 / 124

by NeuLyeo 2024. 1. 5.

[ Programmers ] 수열과 구간 쿼리 1 ( java ) 70 / 124

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

📚 Table of Contents

     

     

     

     

    문제 설명

    정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e] 꼴입니다.

     

    query마다 순서대로 sie인 모든 i에 대해 arr[i]에 1을 더합니다.

     

    위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.

     

     

    제한사항

    • 1 ≤ arr의 길이 ≤ 1,000
      • 0 ≤ arr의 원소 ≤ 1,000,000
    • 1 ≤ queries의 길이 ≤ 1,000
      • 0 ≤ se < arr의 길이

     

     

    입출력 예

    arr queries result
    [0, 1, 2, 3, 4] [[0, 1],[1, 2],[2, 3]] [1, 3, 4, 4, 4]

     

     

    입출력 예 설명

    입출력 예 #1

    • 각 쿼리에 따라 arr가 다음과 같이 변합니다.
    i queries[i] arr
    - - [0, 1, 2, 3, 4]
    0 [0,1] [1, 2, 2, 3, 4]
    1 [1,2] [1, 3, 3, 3, 4]
    2 [2,3] [1, 3, 4, 4, 4]
    • 따라서 [1, 3, 4, 4, 4]를 return 합니다.

     

     

     

     

    문제 풀이

    코드 설명

    코드의 목적:

    이 코드는 주어진 정수 배열(arr)의 특정 구간에 대해 증가 연산을 수행하는 기능을 가진 알고리즘입니다. 연산을 수행할 구간의 시작과 끝 인덱스는 2차원 배열(queries)의 각 원소로 제공됩니다.

     

    코드의 주요 구조:

    1. 이중 for문: 첫 번째 for문은 연산을 수행할 구간의 수만큼 반복하고, 두 번째 for문은 각 구간 내의 원소에 대해 반복합니다.
    2. 증가 연산: 각 구간 내의 원소를 1씩 증가시킵니다.
    3. 반환: 연산이 완료된 배열을 반환합니다.

     

    코드의 주요 알고리즘:

    1. 연산을 수행할 구간의 수만큼 반복합니다.
    2. 각 구간 내의 원소를 1씩 증가시킵니다.
    3. 연산이 완료된 배열을 반환합니다.

     

    코드의 핵심:

    1. 이중 for문을 이용하여 연산을 수행할 구간과 그 구간 내의 원소를 순회합니다.
    2. 증가 연산을 수행합니다.
    3. 연산이 완료된 배열을 반환합니다.

     

     

     

    풀이

    class Solution {
        public int[] solution(int[] arr, int[][] queries) {
    
            // 연산을 수행할 구간의 수만큼 반복
            for (int i = 0; i < queries.length; i++) {
                // 각 구간 내의 원소에 대해 반복
                for (int j = queries[i][0]; j <= queries[i][1]; j++) {
                    // 각 원소를 1씩 증가시킴
                    arr[j] += 1;
                }
            }
    
            // 연산이 완료된 배열을 반환
            return arr;
        }
    }