알고리즘 & 코딩 테스트 이론/강의

[🧠 Do it! 알고리즘] 2-2. 구간 합

가지코딩 2025. 5. 3. 10:57

🧠 목차

  1. 구간 합
  2. [실전 문제] 구간 합 구하기 4 (백준 11659)

1. 구간 합

  • 합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘
  • 코딩 테스트에서 사용빈도가 높다.

 

합 배열

  • 배열 A가 있을 때 합 배열 S 정의
S[i] = A[0] + A[1] + A[2] + ... + A[i-1] + A[i]   // A[0]부터 A[i]까지의 합

 

합 배열 S를 만드는 공식

S[i] = S[i -1] + A[i]

 

 

구간 합을 구하는 공식

S[j] - S[i-1]    // i 에서 j 까지 구간 합

 


2. [실전 문제] 구간 합 구하기 4 (백준 11659)

문제: 구간 합 구하기 4 https://www.acmicpc.net/problem/11659

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int numN = sc.nextInt();
        int psN = sc.nextInt();

        int[] s = new int[numN + 1];

        for(int i = 1; i <= numN; i++) {
            int num = sc.nextInt();
            s[i] += s[i - 1] + num;
        }

        for(int i = 0; i < psN; i++) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            System.out.println(s[b] - s[a - 1]);
        }

        sc.close();
    }
}