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();
}
}
'[ 다먹살 ] > - Coding' 카테고리의 다른 글
[프로그래머스] 레벨1 신고 결과 받기 (0) | 2022.04.02 |
---|---|
[백준] 1531 투명 (0) | 2022.03.31 |
[백준] 14490 백대열 (0) | 2022.03.28 |
[백준] 2822 점수계산 (0) | 2022.03.25 |
[백준] 9656 돌 게임2 (0) | 2022.03.23 |
댓글