책/Do it! 알고리즘 코딩 테스트 자바 편
Day-2 구간 합
댈팽이
2024. 3. 13. 23:33
728x90
1. 구간 합 이론
합 배열 S는 기존의 배열 A가 있을 때, 일정 범위의 합을 구해둔 배열이다.
미리 합 배열을 구해두면 일정 범위의 합을 구하는 시간 복잡도가 O(N)에서 O(1)로 감소한다.
합 배열이 없는 경우에는 배열 A를 순회해야 구할 수 있으므로 최악의 경우 0부터 n까지 돌게 된다.
따라서 이 경우 O(N)이 된다.
2. 구간 합 공식
- 합 배열을 만드는 공식 : S[i] = S[i-1] + A[i]
- 구간 합을 구하는 공식 : S[j] - S[i-1] (i에서 j까지의 합)
합 배열이 있는 경우에는 시간 복잡도가 O(1)이 된다.
이는 구간 합을 구할 때 특정 인덱스의 값을 참조해야 하는데 이 시간 복잡도가 O(1)이기 때문이다.
위 공식들을 이용하여 합 배열을 만들고 구간 합을 구하면 시간 복잡도를 줄일 수 있다.
3. 예제 문제
[11659] 구간 합 구하기 4 (JAVA)
# 문제 설명 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가
spicyrisotto.tistory.com
[11660] 구간 합 구하기 5 (JAVA)
# 문제 설명 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있
spicyrisotto.tistory.com
728x90