배열 A, 합 배열 S를 미리 구하면
시간 복잡도가 O(N)에서 O(1)로 감소된다.
인덱스 | 0 | 1 | 2 | 3 | 4 | 5 |
배열 A | 15 | 13 | 10 | 7 | 3 | 12 |
합 배열 S | 15 | 28 | 38 | 45 | 48 | 60 |
합 배열 S를 만드는 공식
S[i] = S[i-1] + A[i]
구간 합을 구하는 공식
S[j] - S[i-1] // i에서 j까지 구간합
A[2] ~ A[5] 구간합을 구하는 공식
S[5] = A[0] + A[1] + A[2] + A[3] + A[4] + A[5]
S[1] = A[0] + A[1]
S[5] - S[1] = A[2] + A[3] + A[4] + A[5]
'C++' 카테고리의 다른 글
C++ - bits/stdc++.h 헤더파일에서 unordered_map & set 등 사용하기 (0) | 2025.01.22 |
---|---|
C++ - cin의 입력이 없을 시 종료 (0) | 2025.01.19 |
C++ - map 요소 접근 방법 (0) | 2025.01.16 |
C++ - lower_bound & upper_bound (0) | 2025.01.11 |
C++ 대소문자 변환 (0) | 2025.01.10 |