Rego의 블로그

백준 11659 파이썬 구간 합 구하기 4 본문

BEAKJOON

백준 11659 파이썬 구간 합 구하기 4

RegularPark 2021. 9. 27. 22:22

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

 

11659번: 구간 합 구하기 4

첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j

www.acmicpc.net

 

   미리 주어진 수들을 차례로 전부 더해놓는 리스트를 만든다. i가 1이라면 j까지 전부 더하기 때문에 i == 1일 때, 누적합 리스트의 j번째 원소가 출력되게 하였고, 그 외에는 (누적합 리스트의 j번째 원소 - 누적합 리스트의 i-1번째 원소)로 정답을 출력할 수 있다.

 

import sys
input = sys.stdin.readline

n,m = map(int,input().split())
nums = list(map(int,input().split()))
sum_num = [0]
for i in range(n):
    sum_num.append(sum_num[-1]+nums[i])
print(sum_num)

for _ in range(m):
    i, j = map(int, input().split())
    if i == 1:
        print(sum_num[j])
    else:
        print(sum_num[j]-sum_num[i-1])