본문 바로가기
[ 다먹살 ]/- Coding

[백준] 11441 합 구하기

by 엉망으로살기 2022. 3. 29.
반응형

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

댓글