처음에는 문제 자체를 이해못했는데, 배열의 첫 번째 값부터 시작해서, 가장 큰 다음 수를 찾아 합치는 문제이다. DP를 사용하면 해결할 수 있다.
functionsolution(arr){// DP 구현을 위해 max, sum 이라는 변수를 선언한다let max = arr[0];let sum = arr[0];for (let i=1; i<arr.length; i++){// 먼저 현재 합과 배열의 각 원소를 더한 합을 비교하고 더 큰 값을 선택한다 sum =Math.max(arr[i]+sum, arr[i]);// 합과 최대값 중 더 큰 값을 선택한다 max =Math.max(sum, max); }// 루프를 마치면 max에 가장 큰 값이 들어있return max;}solution([-1,3,-1,5]) // 7 (3 + (-1) + 5)