[백준] 11659 - 구간 합 구하기 4 / Python / 실버 3

KimYoungWoong·2023년 1월 28일
0

BOJ

목록 보기
28/31
post-thumbnail

🚩문제 주소


📄풀이

누적합

인덱스를 맞추기 위해 빈 배열에 0을 넣어놓고, 입력 받은 숫자들의 누적합을 구해서 배열에 넣습니다.

주어진 i부터 j까지의 구간의 합은 누적합[j] - 누적합[i-1]입니다.

ex)
5, 4, 3, 2, 1 -> [0, 5, 9, 12, 14, 15]
3부터 5까지일 경우

  • 5까지의 누적합=15, 2(3-1)까지의 누적합=9 -> 15-9 = 6
  • 3 + 2 + 1 = 6


👨‍💻코드

import sys
input = sys.stdin.readline

N, M = map(int, input().split())
arr = list(map(int, input().split()))
nums = [0]
for n in range(N):
  nums.append(nums[-1]+arr[n])

for _ in range(M):
  i, j = map(int, input().split())
  print(nums[j]-nums[i-1])

profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글