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

구간합 배열(Prefix Sum)

by Homil-Rye 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