배열의 구간 변화 빠르게 구하기
·
알고리즘
알고리즘 문제를 해결하는 도중에 해결하기 어려운 부분이 있었습니다.하나의 1차원 배열을 예로 들어보겠습니다.[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]위처럼 1차원 배열이 존재합니다. 이 때, 구간별 변경값이 주어집니다.배열의 인덱스 2부터 7까지 3을 더한다.이 때 어떻게 계산해야할까요?for문을 통한 계산가장 먼저 드는 생각은 for문을 통해 2부터 7까지 각각 3을 더해주는 방법입니다. 배열의 길이가 N이고 변경값이 M회 주어진다면, 시간복잡도는 $O(N * M)$입니다.이를 더 빠르게 계산하는 방법은 없을까요?이런 경우, 누적합 을 이용할 수 있습니다.누적합을 이용한 구간 변화예시를 통해 설명해보겠습니다.array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]위 배열에 ..