풀이2
| |
참고
Kadane’s Algorithm은 배열에서 연속된 서브어레이(subarray)의 최대 합을 찾기 위한 효율적인 알고리즘입니다.
이 알고리즘은 한 번의 배열 순회로 문제를 해결할 수 있어서 시간 복잡도가 O(n)입니다.
이 방법은 현재까지의 최대 합과 현재 위치에서 끝나는 최대 합을 지속적으로 비교하여 업데이트하는 방식으로 동작합니다.
Kadane’s Algorithm의 동작 방식
초기화:
- maxCurrent를 배열의 첫 번째 요소로 설정합니다.
- maxGlobal을 배열의 첫 번째 요소로 설정합니다.
배열 순회:
- 두 번째 요소부터 배열의 끝까지 반복합니다.
- 현재 요소를 포함하는 서브어레이의 합 (maxCurrent + nums[i])과 현재 요소 자체 (nums[i])를 비교하여 더 큰 값을 maxCurrent로 갱신합니다.
- maxCurrent가 maxGlobal보다 크다면 maxGlobal을 maxCurrent로 갱신합니다.
결과 반환:
- 반복문이 끝난 후 maxGlobal에는 최대 서브어레이의 합이 저장되어 있습니다.