Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jsp
- SQLP
- 챗지피티
- 자바
- HTTP상태
- 파이썬
- 코딩테스트
- 그리디알고리즘
- 서버
- 프로그래머스
- ChatGPT
- 알고리즘코딩테스트
- 개발자
- SQLD
- java
- javascript
- 백준
- JQuery
- 네트워크
- Spring
- HTTP
- 하루코딩
- API
- 개발
- 알고리즘
- 정렬알고리즘
- codingtest
- Python
- 탐욕알고리즘
- SQL
Archives
- Today
- Total
개발자's Life
[알고리즘] 구간 합 - 배열 본문
728x90
반응형
구간 합 배열은 우선 기존 제시되는 배열을 순차적으로 더해 나타내는 배열이다.
아래 배열이 기본적으로 주어져 있다.
int[] arr = { 1, 18, 21, 3, 6}
사이즈 5인 배열에 1, 18, 21, 3, 6 이 있고 이 배열을 기준으로 구간합 배열은 만들어준다.
S[i] = S[i - 1] + arr[i]
공식으로 만들어지고 만들어지는 코드는 아래와 같다.
(폰으로 적는 손코딩이라 돌려보지는 않은 코드입니다..ㅠ)
int[] arr_sum = new int[5];
// 인덱스 0 번째는 미리 arr 0번 인덱스로 초기화
arr_sum[0] = arr[0];
for(int i = 1; i < are.length; i++){
arr_sum[i] = arr_sum[i - 1] + arr[i];
}
그렇게 되면
arr_sum 변수에는 1, 19, 40, 43, 49 가 순서대로 담겨 있고 해당 함수로 구간 합을 구할수 있다.
인덱스 번호 기준 i ~ j 를 구할려면 공식은 아래와 같다.
s[j] - s[i - 1] 이고 실 데이터로 그린 내용은 아래와 같다.

(좀 휘날리는 부분 양해 부탁드립니다..ㅎ)
위와 같이 인덱스 4는 0 ~ 4 구간 합이고
2 ~ 4 는 (전체 - 2인덱스 전인 1) 와 같다.
구간합 배열은 코딩테스트에서도 자주 사용한다고 하였고 응용하는 방법은 코딩테스트 사용할때 공유 하겠다.
728x90
'코딩테스트 > Study' 카테고리의 다른 글
[알고리즘] 로직이 단순한 버블정렬의 개념 (0) | 2023.07.29 |
---|---|
[알고리즘] 스택과 큐에 대한 개념정리 (0) | 2023.07.27 |
[Study] 자료구조 배열과 리스트, 핵심이론!! (0) | 2023.07.25 |
[Study] 디버깅, 코드의 논리 오류 탐색 (0) | 2023.07.25 |
[Study] 알고리즘_시간복잡도_코딩테스트 (0) | 2023.07.24 |
Comments