본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#132 백준 파이썬 [11659] 구간 합 구하기 4

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

 

#Solution

다이나믹 프로그래밍... 까지 가지 않고 미리 1~n까지의 sum을 구한다음 sum(j) - sum(i-1)을 구해주면 답이된다.

import sys

N, M = map(int, input().split())
numbers = list(map(int, sys.stdin.readline().split()))
sum_numbers = [0 for _ in range(N)]

for i in range(N):
    if i == 0:
        sum_numbers[i] = numbers[i]
    else:
        sum_numbers[i] = sum_numbers[i-1] + numbers[i]

for _ in range(M):
    i, j = map(int, sys.stdin.readline().split())
    if i == 1:
        print(sum_numbers[j-1])
    else:
        print(sum_numbers[j-1] - sum_numbers[i-2])