https://www.acmicpc.net/problem/1912
dynamic programming
을 활용하는 문제.
배열에 순회를 돌며 값을 합산한다. 이 때 배열의 현재 값과 현재 값 + 합산한 값 중 더 큰 수를 dp
배열에 저장한다.
const fs = require('fs');
let [num, arr] = fs.readFileSync('/dev/stdin').toString().split('\n');
arr = arr.split(' ').map(Number);
const dp = Array.from({ length: num }, (_, idx) => {
return !idx ? arr.shift() : 0;
});
arr.forEach((num, idx) => {
dp[idx + 1] = Math.max(num, num + dp[idx]);
});
console.log(Math.max(...dp));