
😎풀이
- 배열의 전체 합을 반환하는 헬퍼 함수
rangeSum 정의
- 시작 지점을 1씩 증가시키며 순회
2-1. l부터 r까지의 범위 산정
2-2. 현재 범위의 합을 기준으로 최소 합 갱신
- 최소 합이 0 이하일 경우
-1 반환
- 최소 합의 값 반환
function minimumSumSubarray(nums: number[], l: number, r: number): number {
let minSum = Infinity
for(let start = 0; start <= nums.length - l; start++) {
for(let len = l; len <= r; len++) {
const curRange = nums.slice(start, start + len)
const sum = rangeSum(curRange)
if(sum <= 0) continue
minSum = Math.min(minSum, sum)
}
}
if(minSum === Infinity) return -1
return minSum
};
function rangeSum(nums: number[]) {
return nums.reduce((acc, cur) => acc + cur, 0)
}