녕의 학습 기록

백준_11659 구간 합 구하기 4 (구간합배열) 본문

Algorithm/Algorithm 문제

백준_11659 구간 합 구하기 4 (구간합배열)

kjyyjk 2023. 11. 18. 19:51

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BJ_11659 {

    public static void main(String[] args) throws IOException {

        int i, j, t;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();
        
        st = new StringTokenizer(br.readLine(), " ");
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());

        //배열 arr과 구간 합 배열 arrSum 선언 및 0번 인덱스 값 0으로 초기화
        int[] arr = new int[n+1];
        int[] arrSum = new int[n+1];
        arr[0] = 0;
        arrSum[0] = 0;

        // arr과 arrSum 값 채우기
        st = new StringTokenizer(br.readLine(), " ");
        for(t=1; t<n+1; t++) {

            arr[t] = Integer.parseInt(st.nextToken());
            arrSum[t] = arrSum[t-1] + arr[t];
        }

        //각 구간합 구하기
        for(t=0; t<m; t++) {

            st = new StringTokenizer(br.readLine(), " ");
            i = Integer.parseInt(st.nextToken());
            j = Integer.parseInt(st.nextToken());

            sb.append(arrSum[j] - arrSum[i - 1]).append('\n');
        }

        System.out.println(sb);
        br.close();
    }
}

 

배열 인덱스 번호와 문제에서 주어지는 i,j 번째 번호간의 관계 주의.

나는 0번 인덱스 0 을 추가하고 1번부터 시작해서 문제에서 주어지는 i,j 와 배열 인덱스 값을 일치시켰다

 

 

 

11659번: 구간 합 구하기 4

첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j

www.acmicpc.net