우보천리 개발

[003] 구간합 구하기 BJ11659 본문

알고리즘/Do it! 알고리즘 코딩테스트

[003] 구간합 구하기 BJ11659

밥은답 2023. 8. 11. 22:49
반응형

https://www.acmicpc.net/problem/11659

 

11659번: 구간 합 구하기 4

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

www.acmicpc.net

 

package Chapter1;
import java.util.*;

public class BJ11659 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[] arr = new int[n];
        int[] sumArr = new int[n+1];   // 합배열 생성

        for (int i=0; i<n; i++) {
            arr[i] = sc.nextInt();
        }

		// 합배열 첫번째는 0
        sumArr[0] = 0;
        for (int i=1; i<=n; i++) {
            sumArr[i] = sumArr[i-1] + arr[i-1];
        }

        for (int k=0; k<m; k++) {
            int i = sc.nextInt();
            int j = sc.nextInt();
            System.out.println(sumArr[j] - sumArr[i-1]); // i~j 합읜 sumArr[i] - sumArr[j-1]
        }
    }
}
반응형
Comments