입력 받은 값을 ' ' 기준으로 나누고 int형으로 전환해서 저장하게 만들었다
이 부분이 제일 번거로웠다
백준 사이트에서 시간초과 뜨길래 using, StreamWriter 이용했다
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
namespace _11720
{
class Program
{
static void Main()
{
using (var sw = new StreamWriter(Console.OpenStandardOutput()))
{
string arrNM = Console.ReadLine();
string[] arrnm = arrNM.Split(' ');
int N = Convert.ToInt32(arrnm[0]);
int M = Convert.ToInt32(arrnm[1]);
int L = N + 1;
string arrNum = Console.ReadLine();
string[] arrnum = arrNum.Split(' ');
int[] arr = new int[L];
for (int i = 1; i < L; i++)
{
arr[0] = 0;
arr[i] = Convert.ToInt32(arrnum[i - 1]);
}
int[] sumarr = new int[L];
// 합배열 만들기
// sumarr[i] = sumarr[i-1] + arr[i]
for (int i = 1; i < L; i++)
{
sumarr[0] = 0;
sumarr[i] = sumarr[i - 1] + arr[i];
}
//for (int i = 0; i < l; i++)
//{
// console.write("{0,2} ", arr[i]);
//}
//console.writeline();
//for (int i = 0; i < l; i++)
//{
// console.write("{0,2} ", sumarr[i]);
//}
//console.writeline();
// 구간합 공식
// sumarr[i] - sumarr[j-1]
//i번째 수부터 j번째 수까지 합을 출력한다.
//Console.WriteLine();
for (int i = 0; i < M; i++)
{
string jk = Console.ReadLine();
string[] JK = jk.Split(' ');
int j = Convert.ToInt32(JK[0]);
int k = Convert.ToInt32(JK[1]);
int sum = sumarr[k] - sumarr[j - 1];
sw.WriteLine(sum);
}
}
}
}
}
https://www.acmicpc.net/problem/11659
11659번: 구간 합 구하기 4
첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j
www.acmicpc.net
'코딩 테스트 > BOJ' 카테고리의 다른 글
C# 5585 거스름돈 (0) | 2023.01.18 |
---|---|
C# 1874 스택 수열 (0) | 2023.01.18 |
C# 11720 숫자의 합 (0) | 2023.01.17 |
C# 10988 팰린드롬 (0) | 2023.01.17 |
C# 1120 문자열 (0) | 2023.01.13 |