2042번 - 구간 합 구하기
전 그냥 세그먼트 트리를 사용하지 않고 바로 간단하게 풀이를 하였는데 이런식으로 하면 왜안되는지
또 세그먼트리를 이용하면 복잡하게 풀이가 진행되는데 이문제의 어떤 부분에서 세그먼트 트리를 이용하여 풀이하기로 마음먹었는지가 궁금합니다. 감사합니다.
이유는 하나입니다. 지금의 풀이가 시간이 너무 오래 걸리기 때문입니다. 또한 세그먼트 트리를 이용하면 시간을 줄일 수 있기 때문입니다.
세그먼트 트리를 사용하면 특정 구간의 합과 원소 하나의 값을 변경시키는 연산을 각각 O(logN) 시간에 할 수 있어, 질문의 코드에서처럼 구간의 합을 구하는 데에 O(N) 시간이 걸리는 것보다 효율적입니다.
답변 감사드립니다!
댓글을 작성하려면 로그인해야 합니다.
salmon16 3년 전
전 그냥 세그먼트 트리를 사용하지 않고 바로 간단하게 풀이를 하였는데 이런식으로 하면 왜안되는지
또 세그먼트리를 이용하면 복잡하게 풀이가 진행되는데 이문제의 어떤 부분에서 세그먼트 트리를 이용하여 풀이하기로 마음먹었는지가 궁금합니다. 감사합니다.