https://www.acmicpc.net/problem/11659
11659번: 구간 합 구하기 4
첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j
www.acmicpc.net
저는 누적합을 통해 문제를 해결하였습니다.
누적합을 통해 해당 인덱스까지의 합을 구하였습니다.
입력으로 들어오는 구간의 끝 누적합 - (시작 인덱스 -1 )누적합하여 해당 구간의 합을 구하였습니다.
package BOJ.etc;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BOJ_11659 {
public static void main(String[] args) throws Exception {
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());
st = new StringTokenizer(br.readLine());
int[] number = new int[n+1];
int[] prefixSum = new int[n+1];
int sum = 0;
for(int i = 1 ; i <= n ; i++){
number[i] = Integer.parseInt(st.nextToken());
sum += number[i];
prefixSum[i] = sum;
}
for(int i = 0 ; i < m ; i++){
st = new StringTokenizer(br.readLine());
int start = Integer.parseInt(st.nextToken());
int end = Integer.parseInt(st.nextToken());
System.out.println(prefixSum[end]-prefixSum[start-1]);
}
}
}
'알고리즘' 카테고리의 다른 글
백준 2512번 예산 (JAVA) (0) | 2023.11.22 |
---|---|
백준 2003번 수들의 합2 (JAVA) (1) | 2023.11.21 |
백준 1197번 최소 스패닝 트리 (JAVA) (2) | 2023.11.19 |
백준 1531번 투명 (JAVA) (1) | 2023.11.18 |
백준 14499번 주사위 굴리기 (JAVA) (0) | 2023.11.17 |