import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int N = kb.nextInt();
int M = kb.nextInt();
int[] numbers = new int[N+1];
int[] sumNumbers = new int[N+1];
StringBuilder sb = new StringBuilder();
for(int i=1; i<N+1; i++) {
numbers[i] = kb.nextInt();
sumNumbers[i] = sumNumbers[i-1]+ numbers[i];
}
for(int x=0; x<M;x++) {
int i = kb.nextInt();
int j = kb.nextInt();
int sum = sumNumbers[j] - sumNumbers[i-1];
sb.append(sum).append('\n');
}
System.out.println(sb.toString());
}
}
아무 생각없이 풀었다가 시간초과 난 문제
구간 합을 미리 구하면 시간 복잡도가 O(N)으로 감소한다.
'공부기록 > 백준' 카테고리의 다른 글
[백준] 11508번 2+1 세일 (2) | 2023.11.21 |
---|---|
[백준] 18310번 안테나 (0) | 2023.11.21 |
[백준] 1546번 평균 (0) | 2023.11.21 |
[백준] 5637번 가장 긴 단어 (1) | 2023.11.21 |
[백준] 14215번 세 막대 (0) | 2023.11.13 |