녕의 학습 기록
백준_11659 구간 합 구하기 4 (구간합배열) 본문
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
'Algorithm > Algorithm 문제' 카테고리의 다른 글
백준_2018 수들의 합 5 (투포인터) (0) | 2023.11.22 |
---|---|
백준_10986 나머지 합 (구간합배열) (0) | 2023.11.21 |
백준_11660 구간 합 구하기 5 (구간합배열) (0) | 2023.11.20 |
백준_1546 평균 구하기 (배열) (0) | 2023.11.17 |
백준_11720 숫자의 합 구하기 (배열) (0) | 2023.11.17 |