algo 26

카데인(kadane) 알고리즘

카데인 알고리즘카데인 알고리즘이란, Dynamic Programming 을 활용해 시간복잡도 O(N)으로 배열의 최대 부분합을 구해는 알고리즘이다.N번째 원소를 갖는 부분배열의 최댓값을 N-1번째 원소를 갖는 부분배열의 최댓값을 이용해 구하는 방식이다. N-1번째 원소를 갖는 부분배열의 최댓값을 안다고 가정했을 때, N번째 원소를 갖는 부분배열의 최댓값은 아래와 같이 결정될 수 있다. N-1번째 원소를 갖는 부분배열에 포함될 수도 있고, 아니면 원소 하나로 구성된 부분배열이 만들어질 수 있다는 의미와 같다.  코드def kadane_algorithm(arr): prev_max=arr[0] res_max=arr[0] for i in range(1, len(arr)): pre..

algo/algorithms 2025.02.25