Algorithm

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

1984 2022. 11. 14. 22:53

* 누적된 합을 배열에 저장해서 풀었다.

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

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		String str = br.readLine();

		int N = Integer.parseInt(str.split(" ")[0]);
		int M = Integer.parseInt(str.split(" ")[1]);

		String numbers = br.readLine();
		StringTokenizer stk = new StringTokenizer(numbers, " ");

		int[] arr = new int[N];
		int sum = 0;
		int i = 0;
		while (stk.hasMoreElements()) {
			int num = Integer.parseInt(stk.nextToken());
			sum += num;
			arr[i] = sum;
			i++;
		}

		for (int j = 0; j < M; j++) {
			str = br.readLine();
			int a = Integer.parseInt(str.split(" ")[0]);
			int b = Integer.parseInt(str.split(" ")[1]);

			if (a >= 2) {
				bw.write(arr[b - 1] - arr[a - 2] + "\n");
			} else {
				bw.write(arr[b - 1] + "\n");
			}
		}

		bw.flush();

	}

}
728x90