[백준] 11441 합 구하기
https://www.acmicpc.net/problem/11441
11441번: 합 구하기
첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는
www.acmicpc.net
어떻게 보면 약간 DP 개념을 가진 문제이다. 나는 DP를 약간 활용해서 0부터 n까지의 범위 전체 합을 가지는 배열 sum을 새로 만들어 저장한 후, input으로 범위가 주어질 때 이 배열을 활용해서 값을 출력했다.
문제
입출력 예제
코드
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
int[] sum = new int[n+1];
// 입력값 처리 및 초기변수 설정
for(int i=0; i<n; i++)
{
arr[i] = sc.nextInt();
}
sum[0] = 0;
sum[1] = arr[0];
// 합 배열 실행
for(int i=2; i<n+1; i++)
{
sum[i] = sum[i-1] + arr[i-1];
}
int m = sc.nextInt();
for(int i=0; i<m; i++)
{
int start = sc.nextInt();
int end = sc.nextInt();
System.out.println(sum[end]-sum[start-1]);
}
sc.close();
}
}