성장일기
[python] 백준 11441 - 합 구하기 본문
첫째 줄에 개수N
둘째 줄에 A1, A2, ..., AN
셋째 줄에 구간의 개수 M
넷째 줄부터 M개의 줄까지는 각 구간 i와 j
🧨누적합 문제
input만 sys.stdin.readline으로 바꿔줘도 풀린다
🎇
{A1, A2, ... , An}이 있을 때, Si = A1 + A2 + ... + Ai라고 하면,
Ai + Ai + 1 + ... + Aj - 1 + Aj는 Sj - Si - 1로 표현할 수 있다
import sys
input=sys.stdin.readline
n=int(input().rstrip())
arr=list(map(int,input().split()))
prefix=[]
temp=0
for i in arr:
temp+=i
prefix.append(temp) #누적합 더해서 리스트에 추가
#print(prefix)
m=int(input().rstrip())
for x in range(m):
i,j=map(int,input().split())
if i==1:
print(prefix[j-1])
#i가 1이면 처음부터 더하는것이기 떄문에 j-1의 값을 출력
else:
print(prefix[j-1]-prefix[i-2])
'알고리즘 문제' 카테고리의 다른 글
[python] 백준 10816 - 숫자 카드 2 (0) | 2022.01.13 |
---|---|
[python] 백준 17390 - 이건 꼭 풀어야해! (0) | 2022.01.11 |
[python] 백준 21920 - 서로소 평균 (0) | 2022.01.09 |
[python] 백준 13412 - 서로소 쌍 (0) | 2022.01.08 |
실버 1 🎉 (0) | 2022.01.08 |