반응형
문제 출처: https://www.acmicpc.net/problem/11659
1. 문제 접근방식
- 입력을 받는 대로 누적 합을 구하여 별도의 배열에 저장해두고 구간 i, j 가 주어지면 arr[j] - arr[i-1]을 구하면 완료!
2. 내가 푼 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class boj11659 {
public static void main(String[] args) throws IOException {
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());
int[] arr = new int[N + 1];
st = new StringTokenizer(br.readLine());
// 누적합
for (int i = 1; i <= N; i++) {
arr[i] = arr[i - 1] + Integer.parseInt(st.nextToken());
}
for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
System.out.println(arr[y] - arr[x - 1]);
}
}
}
3. 결과 및 느낀점
- 별도로 누적합을 저장해 둘 배열을 만드는 생각을 한다면 크게 어려운 문제는 아니였다.
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 1013 JAVA (0) | 2021.08.03 |
---|---|
[Baekjoon/백준] 1120 JAVA (0) | 2021.08.02 |
[Baekjoon/백준] 9095 JAVA (0) | 2021.07.31 |
[Baekjoon/백준] 11651번 JAVA (0) | 2021.07.30 |
[Baekjoon/백준] 4673번 JAVA (0) | 2021.07.29 |