
세그먼트 트리 (Segment Tree)
·
Data Structures & Algorithms
세그먼트 트리란?세그먼트 트리는 구간의 합, 구간의 최솟값, 구간의 최댓값등을 빠르게 구할 때 사용합니다. 구간내의 다양한 값들을 구할 수 있고, 업데이트 되더라도 몇개의 숫자만 업데이트 하면 되기 때문에 유용하게 사용할 수 있습니다. 배열을 이진 트리처럼 분할하여 트리 형태로 표현각 노드는 특정 구간을 나타내고, 그 구간의 정보를 저장 트리 만들기어떠한 데이터들이 주어지고 그 데이터의 구간 합을 구하는 문제라면 누적합을 사용하지만 중간 중간 값이 업데이트 되거나, 합계가 아닌 최대값, 최소값등을 구해야 한다면 세그먼트 트리를 사용하면 됩니다. 이렇게 숫자들이 있습니다. 이 숫자들의 구간 합을 구하기 위해서 2개씩 합계를 구하겠습니다. 지금은 짝수개이기 때문에 2개씩 합계를 구할 수 있지만 홀수개인 ..