Skip to content
Algorithm.js | Algorithm in JavaScript
📚 단일 패턴

303. Range Sum Query - Immutable

Prefix sum 배열을 전처리해 구간 합 계산하는 불변 범위 합 문제

Oct 22, 2025 — prefix-sum

문제 설명

풀이 아이디어

해결 전략

풀이

우리의 prefixSum 필살기 : prefixSum[i-1] 신경쓰지 않고 계산할 수 있음.

// sum [ i ... j ]
prefixSum[j] - prefixSum[i] + nums[i]

구현

class NumArray {
private nums: number[]
private prefixSum: number[];
constructor(nums: number[]) {
this.nums = nums;
this.prefixSum = Array(nums.length).fill(0);
this.prefixSum[0] = nums[0];
for (let i = 1; i < nums.length; i += 1) {
this.prefixSum[i] = this.prefixSum[i-1] + nums[i];
}
}
sumRange(left: number, right: number): number {
return this.prefixSum[right] - this.prefixSum[left] + this.nums[left];
}
}
/**
* Your NumArray object will be instantiated and called as such:
* var obj = new NumArray(nums)
* var param_1 = obj.sumRange(left,right)
*/