자료구조 알고리즘 코딩테스트 문제풀이/알고리즘 - Do it
알고리즘 구간 합
유혁스쿨
2023. 12. 7. 19:33
728x90
반응형
구간 합
합 배열 을 이용하여 시간 복잡도를 더 줄이기 위한 특수 목적 알고리즘
합 배열
배열에서 특정 범위에 존재하는 요소의 합
합 배열 정의
S [ i ] = A [ 0 ] + A [ 1 ] + ...... + A [ i - 1 ] + A [ i ]
ex) i가 4일 때 합 배열 = A [ 0 ] ~ A [ 4 ] 까지의 합
쉽게말해 누적합을 말한다.
합 배열 공식
S [ i ] = S [ i - 1 ] + A [ i ]
구간합 공식
배열 인덱스 i 부터 인덱스 j 까지의 합
S [ j ] - S [ i - 1 ]
ex) 2 ~ 5까지의 합 = S [ 5 ] - S [ 1 ]
- 배열 A 의 0 ~ 1까지의 합은 3 + 9 = 12 이다.
- 배열 A 의 2 ~ 5까지의 합은 5 + 10 + 4 + 8 = 27이다.
- 합 배열 S [ 5 ] = 36 이다.
- 합 배열 S [ 1 ] = 9 이다.
- 합 배열 S [ 5 ]인 36에서 합배열 S [ 1 ]인 9를 빼면 27 이 된다.
다시한번 식으로 표현하자면 아래와 같다
S [ 5 ] = A [ 0 ] + A [ 1 ] + A [ 2 ] + A [ 3 ] + A [ 4 ] + A [ 5 ]
⊝ (MINUS)
S [ 1 ] = A [ 0 ] + A [ 1 ]
= A [ 2 ] + A [ 3 ] + A [ 4 ] + A [ 5 ]
결과적으로 주어진 구간합 공식에 정의된 합 배열간의 차를 통해 2 ~ 5까지의 합인 27과 동일한 결과값이 나오게 된다.
번외
Q. 합배열 문제에서 배열의 값이 자주 바뀐다면?
Segment(Index) Tree
728x90
반응형