구간 합
구간 합은 배열, 리스트 등의 인자를 더한 결과를 저장한 것으로 시간복잡도를 줄이기 위해 활용한다.
예를 들어 아래 그림과 같이 배열 A가 있다면 순서대로 값을 더한 배열 S를 구해 문제를 푸는 것이다.

아래는 구간 합을 이용하는 간단한 문제 중 하나이다.
백준: 구간 합 구하기 4
https://www.acmicpc.net/problem/11659
11659번: 구간 합 구하기 4
첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j
www.acmicpc.net
해당 문제는 간단히 값을 받을 때마다 for문을 이용해 풀 수는 있지만 시간 초과로 통과가 되지 않는다.
이를 해결하기 위해 미리 배열 S를 만든 후 뺄셈만 하여 푸는 것이다.
구간 합을 구현하는 것은 쉽기 때문에 문제를 보고 구간 합을 떠올리는 것이 관건이라고 생각한다.
'Algorithm & PS > Algorithm' 카테고리의 다른 글
알고리듬 - 버블, 선택, 삽입 정렬 (0) | 2023.06.27 |
---|---|
알고리듬 - 슬라이딩 윈도우 (0) | 2023.06.26 |
알고리듬 - 투 포인터 (0) | 2023.06.26 |
알고리듬 - 시간복잡도(Time Complexity) (0) | 2023.06.22 |
알고리듬 - dx, dy를 이용한 이차원 배열 이동 (0) | 2023.06.21 |