Algorithm/📊 Problem Solving

[백준/BOJ] 11659 - 구간 합 구하기 4

posted by sangmin

11659 - 구간 합 구하기 4

📌 문제

수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오.

📋 코드

import sys
input = sys.stdin.readline

N, M = map(int, input().split())
arr = [0] + list(map(int, input().split()))
prefix = [list(map(int, input().split())) for _ in range(M)]

for i in range(1, len(arr)):
    arr[i] += arr[i-1]

for i, j in prefix:
    print(arr[j] - arr[i-1])

💡 한마디

반복문을 통해 arr 리스트의 누적 합을 구한다. 그러면 i번째부터 j번째까지의 구간 합을 arr[j] - arr[i-1] 으로 나타낼 수 있다.

 

11659번: 구간 합 구하기 4

첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j

www.acmicpc.net