자료구조·알고리즘

구간 합

junga 2023. 6. 23. 17:46

💡 구간 합

  • 수들의 나열에서 특정 구간의 합을 의미한다.
  • 보통 배열에서 i ~ j 인덱스 사이의 값들의 합을 구하는데 사용한다.
  • 반복문을 사용하여 i ~ j 사이의 값을더하는 알고리즘의 시간복잡도는 O(n)이다.
  • 구간 합 알고리즘을 사용하여 구간 합을 구하는 경우 O(1)의 성능을 갖는다.


합 배열 이용

  • S[i] = A[0] + A[1] + … + A[i - 1] + A [i]
  • 합 배열 S를 만드는 공식 : S[i] = S[i - 1] + A[i]
  • i ~ j 구간 합을 구하는 공식 : S[j] - S[i - 1]

index 0 1 2 3 4 5
기존 배열 A 15 13 10 7 3 12
합 배열 S 15 28 38 45 48 60

ex) A[2] ~ A[4]의 구간 합 구하기

  • A[0] 부터 A[4] 까지의 합 = S[4]
  • A[0] 부터 A[1] 까지의 합 = S[1]
  • S[4] - S[1] = 20

'자료구조·알고리즘' 카테고리의 다른 글

배열과 리스트  (0) 2023.06.23
[자료구조] 이진 탐색 트리  (0) 2022.10.07
[자료구조] 트리  (0) 2022.10.06