누적합(Prefix Sum)
누적합(Prefix Sum)이란? 말그대로 나열된 수의 누적된 합을 말한다. 배열의 일부 구간에 대한 합을 빠르게 구할 수 있게 해주는 알고리즘이다. 누적합은 어떻게, 왜 사용하는 것인가? 아래 크기 6짜리 배열 array가 존재한다. 여기서 구간 [2, 5]의 합을 구하라는 문제가 주어질 때 어떻게 풀이할 것인가? array = {1, 2, 3, 4, 5, 6} for(int i = 0; i = 2) { sum += array[i]; } } 일반적인 풀이로는 구간 [2, 5]의 합 3 + 4 + 5 + 6 = 18로, 배열을 반복문으로 순회하며 값을 더하는 방식으로 간단하게 구현할 수 있다. 그러나 수열의 개수 'N'이 매우 커졌을 때 구간 [100000, 231311]..
2023. 2. 8.