누적합

개발새발log·2022년 9월 13일
0

유형별 알고리즘

목록 보기
3/9

문제

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

구간합 풀이

  1. sums[i] = sums[i-1] + arr[i]
    -> sums[i] = 0~i번째 index까지 합

  2. 구간 [a:b] 합
    sums[b] - sums[a-1]

코드

#합 구하기 - 누적합
import sys

def solution(n, arr, ranges):
    sums = [0] * (n + 1)
    for i in range(1, n + 1):
        sums[i] = sums[i-1] + arr[i-1]
    for a, b in ranges:
        print(sums[b] - sums[a-1])

n = int(input())
arr = list(map(int, sys.stdin.readline().split()))
m = int(input())
ranges = []
for _ in range(m):
    a, b = map(int, input().split())
    ranges.append([a, b])
solution(n, arr, ranges)
profile
⚠️ 주인장의 머릿속을 닮아 두서 없음 주의 ⚠️

0개의 댓글