
구간 합 (Prefix Sum)
·
코딩테스트/Python
1차원 배열의 구간 합 해당 구간의 값을 더해가면서 구간 합 배열에 넣는다. (S[i] = S[i-1] + A[i]) i부터 j 까지의 합은 S[j] - S[i-1]로 구할 수 있다. s = [0] a = [1,2,3,4,5] temp = 0 for i in a: temp += i s.append(temp) 2차원 배열의 구간 합 2차원 배열에서의 구간 합은 (1,1)에서 (i,j)까지 영역의 모든 수의 합이다. 구간 합 배열은 S[i-1][j] + S[i][j-1] - S[i-1][j-1] + A[i][j] 로 구할 수 있다. 위의 예시에서 (3,3)에서 (5,5)까지의 구간 합은 빨간색 + 노란색 + 초록색 - 노란색과 초록색이 겹치는 부분이다. 따라서, 특정 구간의 구간 합은 S[X2][Y2] - ..