728x90
문제
수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/11659
입력
첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다.
둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다.
셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다.
출력
총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다.
예제
# input
5 3
5 4 3 2 1
1 3
2 4
5 5
# output
12
9
1
문제 풀이
import sys
input = sys.stdin.readline
# 입력 받기
N, M = map(int, input().split())
L = [0] + list(map(int, input().split()))
# 누적합 구하기
for idx, num in enumerate(L):
if idx > 0:
L[idx] = L[idx-1] + num
# 구간 합 출력
for _ in range(M):
i, j = map(int, input().split())
print(L[j]-L[i-1])
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90