개발 공부용

누적 합 | 백준 11659 구간 합 구하기 4 본문

코딩 테스트

누적 합 | 백준 11659 구간 합 구하기 4

솝제로 2025. 10. 23. 04:44

문제

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

수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합 구하기

 

입력

  • 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M
  • 둘째 줄에는 N개의 수
  • 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j

 

출력

  • 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합

 

누적합

 

  • 누적합을 미리 구해두고 활용

 

코드

import sys
input = sys.stdin.readline

N, M = map(int, input().split())
nums = list(map(int, input().split()))
sums = [0] * (N+1)

#누적합 계산
for i in range(1, N+1):
	sums[i] = nums[i-1] + sums[i-1]
    
for _ in range(M):
	num1, num2 = map(int, input().split())
	print(sums[num2] - sums[num1-1])