누적합을 활용한 풀이
모든 값의 합을 누적해서 저장한 다음 dp[end] - dp[start-1] 값으로
원하는 범위의 합의 값을 구할 수 있다.import sys input = sys.stdin.readline N, M = map(int, input().split(" ")) numbers = list(map(int, input().split(" "))) dp = [0] * (N + 1) for i in range(N): dp[i + 1] = dp[i] + numbers[i] for _ in range(M): start, end = map(int, input().split(" ")) print(dp[end] - dp[start - 1])\