🍼[누적 합] Silver
11659 구간 합 구하기 4
문제 요약
배열이 주어질 때, i 번째 수 부터 j 번째 수 까지의 합을 구해라.
알고리즘
배열을 입력받는다.
누적합 배열을 만든다.
입력받은 값을 기반으로 결과를 출력한다.
접근방법
누적합 계산을 쉽게 하기 위해서 초기 값에는 0을 대입한다.
즉, presum[1]번째에 numbers[0]이 저장된다.
append(presum[i] + numbers[i]) 라고 한다면, i-1번째까지의 합 + 현재 numbers[i]에 대해 접근하게 되는것!
이후 입력받은 i 와 j 에 대해서 값을 계산해주면 된다.
코드
let input = readLine()!.split { $0 == " " }.map { Int($0)! }, (n, m) = (input[0], input[1])
let numbers = readLine()!.split { $0 == " " }.map { Int($0)! }
var presum = [0]
for i in 0 ..< n {
presum.append(presum[i] + numbers[i])
}
for _ in 0 ..< m {
let input = readLine()!.split { $0 == " " }.map { Int($0)! }
let (i, j) = (input[0], input[1])
print(presum[j] - presum[i-1])
}
Last updated