배열의 [a, b] 구간의 합을 구할 때, 구간에 속하는 값을 각각 더하는 연산은 시간 복잡도 O(n)으로 매우 느리다. 크기가 작은 구간합을 한 번만 구하는 경우에는 문제가 없지만, 크기가 크거나 구간합을 여러 번 구할 경우 매우 느리기 때문에 다른 방법을 사용해야 한다. 배열의 0번째 성분부터 k번째 성분을 더한 값을 sum[k]라고 하자. 구간 [a, b]의 합은 곧 a부터 b까지 더한 값이므로, 1부터 b까지 더한 값에 1부터 a - 1까지 더한 값과 같다. 이 값은 sum[b] - sum[a - 1]과 같으므로, 구간 [a, b]에서의 합은 곧 sum[b] - sum[a - 1]과 같다. 이 방법을 사용하면 sum을 만들 때의 시간복잡도가 O(n)이 되지만, 이후 구간합을 구할 때의 속도가 O(..