Koala - 12기/코딩테스트 준비 스터디
[백준/Python] 11441번 : 합 구하기
devhex
2023. 10. 1. 19:34
문제
https://www.acmicpc.net/problem/11441
풀이
주어진 구간의 합 구하기는 누적합을 활용하여 풀 수 있다.
누적합을 구한 뒤, 주어진 구간에 맞춰 일부 구간을 빼주면 된다.
만약 구간이 1부터 시작이 아닌 3~4라면, 1~4에서 1~2를 빼주면 남은 것은 3~4이다.
해당 원리로 주어진 구간에 대해 계산해주면 된다.
코드
N = int(input())
A = [0] + list(map(int, input().split()))
M = int(input())
sections = [list(map(int, input().split())) for _ in range(M)]
psum = [0]*(N+1)
for i in range(1,N+1):
psum[i] = psum[i-1]+A[i]
for l,r in sections:
print(psum[r]-psum[l-1])