세그먼트 트리(Segment tree)
{1, 3, 100, 5, -2, 10, 4, 20, 1, 5} 다음 배열의 구간 합을 m개의 각 요청마다 구한다고 생각해보자 그냥 구하게 된다면 O(mn)의 시간복잡도를 가지게 될 것이다. 이를 줄이고 싶다면, 누적합(prefix sum) 기법을 사용하면 된다. 미리 index = 0부터 더한 값들을 배열에 저장한다. pre_sum = {1, 4, 104, 109, 107, 117, 121, 141, 142, 147} 그리고 만약 i번째에서 j번째의 구간 합을 구하라는 쿼리가 들어온다면 prefix[j - 1] - prefix[i - 1]의 값을 바로 구하면 되기 때문에 O(1)의 시간복잡도 내에 각각의 쿼리를 처리할 수 있다. 이렇게 되면 처음에 누적합을 구할 때만 배열 전체를 순회하면 되기 때문에 ..
단축키
내 블로그
내 블로그 - 관리자 홈 전환 |
Q
Q
|
새 글 쓰기 |
W
W
|
블로그 게시글
글 수정 (권한 있는 경우) |
E
E
|
댓글 영역으로 이동 |
C
C
|
모든 영역
이 페이지의 URL 복사 |
S
S
|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.