본문 바로가기
Computer Science/알고리즘

구간합 배열(Prefix Sum)

by Hoseok 2023. 7. 5.
728x90
반응형

구간합 배열이란

 

만약 N개의 값으로 이루어진 배열이 주어졌을 때, 부분 배열의 합을 구하려면 반복문을 돌리면 

 

O(N)이 걸리지만, 구간합 배열을 사용하면 O(1)에 구할 수 있다.

 

구간합 배열 설명

 

출처 https://osgoodgunawan.medium.com/prefix-sum-80d531154b95

 

 

Sum 배열은 N 또는 N+1로 이루어진 배열이다.

 

위의 그림은 N으로 되어있다.

 

P[0]은 A[0]과 같다.

 

그 다음 P[1]은 P[0] + A[1]

 

P[2]는 P[1] + A[2]

 

P[3]은 P[2] + A[3]

 

으로 구할 수 있다.

 

이처럼 반복문을 사용한다면, 하나씩 더해야 할 것을

 

구간합 배열을 사용하면 O(1)에 구할 수 있다.

 

만약 A[1] + A[2]를 구하고 싶다면 어떻게 하면 될까?

 

P[2] - P[0] 이 된다.

 

P[2] - P[0] =  (A[0] +  A[1] + A[2]) - A[0] 

 

이기 때문이다.

728x90
반응형

'Computer Science > 알고리즘' 카테고리의 다른 글

이분탐색(Binary Search)  (0) 2023.07.05
분할 정복(Divide And Conquer)  (1) 2023.06.17
BFS(Breadth-First Search)  (0) 2023.05.19
DFS(Depth-First Search)  (0) 2023.05.19
그리디 알고리즘(Greedy Algorithm)  (0) 2023.05.18