February 17, 2023
https://www.acmicpc.net/problem/1912
// 입력 처리
const INPUT_NAME = "i1.txt";
const filePath = process.platform === "linux" ? "/dev/stdin" : `./${__dirname.split('\\').pop()}/${INPUT_NAME}`;
const input = require("fs").readFileSync(filePath).toString().trim().split("\n").map(item => item.trim());
const n = Number(input[0]);
const arr = input[1].split(" ").map(item => Number(item));
// 문제
function solution() {
let sum = 0;
let max = Number.MIN_SAFE_INTEGER;
arr.forEach(value => {
let temp = sum + value;
max = Math.max(max, temp); // 최대 합을 기억한다.
// 만약 현재까지의 합이 음수이면 버린다.
if (temp < 0) sum = 0;
// 반대로 양수이면, 현재까지의 합을 기억한다.
else sum = temp;
});
console.log(max);
}
// 실행
solution();