먼저, DP 접근 방식을 이용하여 선택한 숫자까지의 합을 쭉 더한 리스트를 생성한다.
주어진 i 번째 수부터 j 번째 수까지의 합을 구하고 싶다면, j 번째 DP 리스트에서 i 번째 DP 리스트를 빼주면 된다.
import sys
input = sys.stdin.readline
N,M = map(int,input().split())
numbers = list(map(int,input().split()))
dp = [0]*(N+1)
dp[1] = numbers[0]
for i in range(2,N+1):
dp[i] = dp[i-1] + numbers[i-1]
for _ in range(M):
i,j = map(int,input().split())
result = dp[j]-dp[i-1]
print(result)
간단한 문제이지만, 뒤에 나올 문제들을 위해 정리하는 느낌으로 적어보았다.