[백준] 11659번 구간 합 구하기 4

1277 단어 psps

문제 및 입출력

문제 접근

누적합 배열을 이용하여 해결하였다.
N개의 수를 입력 받을 때, 전까지의 수를 더하여 누적 합 배열을 구한다.
arr[i] = arr[i - 1] + integer;

이후, i부터 j까지의 합을 누적합에서 j까지의 누적 합에서 i-1까지의 누적합을 빼는 방식으로 구한다.

arr[j] - arr[i - 1]

구현 코드

import java.io.*;
import java.util.*;

public class Main {
  public static int[] arr;

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine());
    int N = Integer.parseInt(st.nextToken());
    int M = Integer.parseInt(st.nextToken());

    arr = new int[N+1];

    st = new StringTokenizer(br.readLine());
    for(int i = 1; i <= N; i++) {
      arr[i] = arr[i-1] + Integer.parseInt(st.nextToken());
    }

    for(int k = 0; k < M; k++) {
      st = new StringTokenizer(br.readLine());
      int i = Integer.parseInt(st.nextToken());
      int j = Integer.parseInt(st.nextToken());

      System.out.println(arr[j] - arr[i-1]);
    }
  }
}

좋은 웹페이지 즐겨찾기