본문 바로가기
Algorithm/문제풀이_백준

[Swift][누적합] 백준 11659번 (구간 합 구하기4)

by Joahnee 2022. 5. 30.

요구능력

누적합

 

문제풀이

기본적인 누적합에 대한 개념을 숙지한다면 쉽게 풀리는 문제이다.

 

후기

누적합의 개념에 대해 알아보았다!

 

코드

import Foundation
let nm = readLine()!.split(separator: " ").map{Int(String($0))!}
let n = nm[0]
let m = nm[1]

var arr = readLine()!.split(separator: " ").map{Int(String($0))!}
var str = ""
var prefixSum = Array(repeating: 0, count: arr.count)
prefixSum[0] = arr[0]
for i in stride(from: 1, to: arr.count, by: 1){
    prefixSum[i] += (arr[i] + prefixSum[i - 1])
}
for _ in 0..<m{
    let ij = readLine()!.split(separator: " ").map{Int(String($0))!}
    var sum = 0
    let i = ij[0] - 1
    let j = ij[1] - 1
    if i != 0 {
        sum = prefixSum[j] - prefixSum[i - 1]
    }else{
        sum = prefixSum[j]
    }
    str += "\(sum)\n"

}
print(str)

댓글