[Baekjoon] #1912 연속합 (Node.js)

seongminn·2022년 12월 26일
0

Algorithm

목록 보기
18/26
post-thumbnail

📝 문제

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));
profile
돌멩이도 개발 할 수 있다

0개의 댓글