문제
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])
'Koala - 12기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/python3] 2559번:수열 (1) | 2023.10.02 |
---|---|
[백준/Python] 1279번 : 풍선공장 (0) | 2023.10.01 |
[백준/python3] 1654번 : 랜선 자르기 (0) | 2023.10.01 |
[C++/백준] 21921번 : 블로그 (0) | 2023.10.01 |
[백준/C++] 16507번: 어두운건 무서워 (0) | 2023.09.30 |