728x90
반응형
누적합
구간의 누적합을 구하는 문제이다.
배열의 각 원소까지의 누적 합을 미리 계산해 놓은 배열을 생성하는 기법이다.
장점
- 배열 특정가간의 합을 빠르게 계산할 수 있다.
이론
- 구간 합 알고리즘을 활용하려면 우선 누적 합 배열을 구해야 한다.
- 0번 인덱스에는 0을 저장하고 1번 인덱스 부터 배열을 담아야 한다.
- 누적 합 배열 arr를 구할 때 아래와 같이 구한다.
// 1차원 배열
arr[i] = arr[i-1] + inputArr[i]
// 2차원 배열
arr[i][j] = inputArr[i][j] + arr[i-1][j] + arr[i][j-1] + arr[i-1][j-1]
- 누적 합 배열 arr를 이용해 구간 합을 구하자고 할때에는 아래와 같이 구한다.
// 1차원 배열
arr[end] - arr[start-1] // start 에서 end까지의 구간 합
// 2차원 배열
arr[x2][y2] - arr[x1-1][y2] - arr[x2][y2-1] + arr[x1-1][y1-1] // x1,y1에서 x2,y2까지의 구간합
시간 복잡도
- O(N)
- 입력 배열을 한번 순회해야 한다. 순회하는데 필요한 시간이 배열의 크기에 비례하므로 O(N)이 나온다.
누적합 문제
https://school.programmers.co.kr/learn/courses/30/lessons/92344
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
[프로그래머스] 2022 KAKAO BLIND RECRUITMENT 파괴되지 않은 건물 by 파이썬 (Python) :누적합
https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는
h-castle.tistory.com
728x90
반응형
'알고리즘 > 개념' 카테고리의 다른 글
[트리 순회] 알고리즘 - 트리 순회 (0) | 2023.07.28 |
---|---|
[BFS] 알고리즘 - 너비 우선 탐색 (BFS, Breadth First Search) (0) | 2023.07.27 |
[DFS] 알고리즘 - 깊이 우선 탐색 (DFS) (0) | 2023.07.26 |
[그래프 이론] 알고리즘 - 그래프 이론 (Graph) (0) | 2023.07.25 |
[구현] 알고리즘 - 구현 (Implementation) (0) | 2023.07.24 |