본문 바로가기
알고리즘/백준 BOJ

[ BOJ/C# ] 11659 구간 합 구하기 4

by 왹져박사 2023. 10. 4.
728x90

https://www.acmicpc.net/problem/11659

 

11659번: 구간 합 구하기 4

첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j

www.acmicpc.net

구간 합은 모든 구간별의 누적 합을 구한 뒤, 지정 구간 이전의 누적 합을 빼면 나온다. 

using System;
using System.IO;
using System.Text;

namespace B11659
{
    class Program
    {
        static void Main()
        {
            StreamReader sr = new StreamReader(Console.OpenStandardInput());
            StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
            StringBuilder sb = new StringBuilder();

            int[] nm = Array.ConvertAll(sr.ReadLine().Split(' '), int.Parse);
            int n = nm[0];
            int m = nm[1];
            int[] arr = Array.ConvertAll(sr.ReadLine().Split(' '), int.Parse);
            int[] sumArr = new int[n + 1];
            sumArr[0] = 0;
            //누적 합
            for (int i = 1; i <= n; i++) sumArr[i] = sumArr[i - 1] + arr[i - 1];
            for (int i = 0; i < m; i++)
            {
                int[] ij = Array.ConvertAll(sr.ReadLine().Split(' '), int.Parse);
                int sum = sumArr[ij[1]] - sumArr[ij[0] - 1];    //구간 합
                sb.Append(sum + "\n");
            }
            sw.Write(sb);
            sr.Close();
            sw.Flush();
            sw.Close();
        }
    }
}

 

이제 실버 2 !!

728x90

'알고리즘 > 백준 BOJ' 카테고리의 다른 글

[ BOJ/C# ] 2579 계단 오르기  (0) 2023.10.07
[ BOJ/C# ] 9375 패션왕 신해빈  (0) 2023.10.05
[ BOJ/C# ] 11651 좌표 정렬하기 2  (0) 2023.10.04
[ BOJ/C# ] 17626 Four Squares  (0) 2023.10.03
[ BOJ/C# ] 9012 괄호  (0) 2023.10.01