더보기
const LSCS = function (arr) {
let subpresent =0;
let max = Number.MIN_SAFE_INTEGER;
for(let i=0; i<arr.length; i++){
subpresent= subpresent+arr[i]
if(subpresent>max)
max = subpresent
if(subpresent<0){
subpresent=0;
}
}
return max
};
현재 더하고 있는중인 subpresent와 max로 Number.MIN_SAFE_INTEGER 를 사용해 안전한 최소값을 할당한다.
arr의 길이만큼 for문을 돌려 계속해서 subpresent에 쌓게 되고 max보다만 크면 최종적인 리턴할 값인 max에 현재까지 계산한 값들을 계속해서 쌓는다.
만약, 음수가 연속되기 시작해서 현재 값에서 계속해서 마이너스가 되어 현재 계산중인 값이 0보다 작은 음수가 되버린다면 현재 계산중인 값을 0으로 초기화하고 다시 계산하게 만든다.
최종적으로 max를 리턴시킨다.
'일반 학습 > 코딩 테스트' 카테고리의 다른 글
[JavaScript] Splice (0) | 2022.03.02 |
---|---|
[JavaScript] 키패드를 배열로 만들어 키값간 거리 찾기 (0) | 2022.02.23 |
TOY19: LPS (0) | 2021.11.04 |
TOY9: 시간복잡도 거듭제곱 (0) | 2021.10.30 |
TOY11: 깊이 우선 탐색 (DFS) (0) | 2021.10.20 |
댓글