Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ccw
- Codeforces
- 마일리지
- gallian
- Algorithm
- 대한항공
- Ebate USA
- 7469
- BOJ
- 이베이트
- subgroup
- persistent segment tree
- Algebraic Geometry
- 이베이트미국
- 아시아나
- k번째 수
- finite group
- round 424
- 대수학
- 백준
- 이베이트코리아
- 알고리즘
- round 420
- 구간쿼리
- persistent indexed tree
- indexed tree
- algebra
- acmicpc
- Ebate Korea
- self balancing binary search tree
Archives
- Today
- Total
Kadane Algorithm 본문
Maximum Sum Subarray라 불리는 문제에서 슬라이딩 윈도우기법으로 O(N)에 해결하는 알고리즘
Maximum Sum Subarray란 수열의 연속 부분합중 가장 큰 값을 찾는 문제
Kadane Algorithm을 간략히 설명하자면
1. 앞에서부터 수를 하나씩 더해가면서 sum이라는 변수에 매번 값을 저장한다.
2. 만약 sum이 음수가 되는 지점이 발생한다면, sum은 0으로 초기화한다.
3. 이 sum들을 매번 maximum값으로 갱신한다.
구간의 index가 필요하다면 sum을 갱신하는 부분에 추가하여 나타낼 수 있다.
위의 내용은 1-dim array에 관한 내용이고
이를 응용하면 2-dim array에서의 문제는 O(N^3)에 해결할 수 있다. (2차원 배열에서 최대 부분합)
참고영상 : https://youtu.be/yCQN096CwWM
'Algorithm > 그밖에2' 카테고리의 다른 글
Persistent Segment Tree (0) | 2017.03.25 |
---|---|
[SCC] Tarjan's Algorithm (0) | 2016.12.30 |
최단거리 알고리즘(다익스트라, 벨만포드, 워셜플로이드) (0) | 2016.08.29 |
Heap/Radix/Quick Sort에 대하여 (0) | 2016.08.15 |
다익스트라 가중치가 음수면 안되는이유 (0) | 2016.08.08 |