합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘
📢 Point
index 0에 0이 없으면 index out of range이 됨.
j - (i-1) 이나 (j-1) - (j-2)를 할 때 계산을 위해 dummy index(value)가 필요함.
sum[j] - sum[i-1] # i ~ j 구간의 합
📢 Point
합 배열을 생성하고 계산하기 위해서 (1, N), (N, 1)은 모두 0으로 채워서 생성. 0이 없으면 index out of range
📢 Point
포함하지 않는 row, col 값을 빼야 하는데, 둘 다 빼면 중복하여 계산된 부분이 있어 더해줘야 함.
# (x1, y1) ~ (y1, y2) 구간의 합
sum_arr[x2][y2] - sum_arr[x2][y1-1] - sum_arr[x1-1][y2] + sum_arr[x1-1][y1-1]