We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
구간 합은 합 배열을 이용하여 시간복잡도를 줄이기 위해 사용하는 알고리즘입니다.
O(N)
기존의 배열을 누적 합해서 전처리한 배열.
스트림 방식 보다 전통적인 반복문이 더 좋다고 한다. 반복문의 i 를 1부터 시작하면 편리하다.
int[] 원본배열 = {1, 2, 3, 4, 5}; int[] 누적합 = new int[원본배열.length]; for(int i = 1; i < 원본배열.length; i++){ 누적합[i] = 누적합[i-1] + 원본배열[i]; }
누적합[ j ] - 누적합[ i - 1 ]
2번째 부터 5번째 요소까지의 합을 구하고 싶어
// 누적합 = {1, 3, 6, 10, 15} // 누적합[5] - 누적합[2 - 1] // 15 - 1 = 14
만약 배열 내 요소가 자주 바뀌어서 합배열이 무용지물이면 어떡하지? 이후 나오는 세그먼트 트리로 풀이 가능!
만약 배열 내 요소가 자주 바뀌어서 합배열이 무용지물이면 어떡하지?
이후 나오는 세그먼트 트리로 풀이 가능!
The text was updated successfully, but these errors were encountered:
No branches or pull requests
구간 합 이란?
구간 합은 합 배열을 이용하여 시간복잡도를 줄이기 위해 사용하는 알고리즘입니다.
시간복잡도
O(N)
합 배열
기존의 배열을 누적 합해서 전처리한 배열.
스트림 방식 보다 전통적인 반복문이 더 좋다고 한다.
반복문의 i 를 1부터 시작하면 편리하다.
구간 합 구하는 법
누적합[ j ] - 누적합[ i - 1 ]
The text was updated successfully, but these errors were encountered: