부등호 오타 때문에 너무 헤맸음.... 진짜 바보가 아닐까 진심으로........
그리고 자꾸 수정할때 if 조건문의 순서가 자꾸 뒤죽박죽이 된다
private static void modify(int start, int end, int node, int index ,int value) {
if (start <= index || end >= index) {
return tree[node]
}
if (start == end) {
return tree[node] = value;
}
int mid = (start + end) / 2;
modify(start, mid, node * 2, index, value);
modify(mid + 1, end, node * 2 + 1, index, value);
tree[node] = tree[node * 2] + tree[node * 2 + 1]
}
priavte static long sum(int start, int end, int node, int left, int right) {
if (start > right || end < left) {
return 0;
}
if (start >= left && end <= right) {
return tree[node];
}
int mid = (start + end) /2;
return sum(start, mid, node * 2, left ,right) + sum(mid + 1, end, node * 2 + 1, left, right);
}