コーディングテストの準備-23日間



方法


sum <= m일때, rt가 증가할때마다 각 rt의 연속 수열의 개수는 (rt - lt +1)만큼 생긴다.

プールコード

//4. 연속 부분수열2
            function solution(m, arr){
                let answer = sum = lt = 0;
                for(let rt = 0; rt < arr.length; rt++) {
                    sum += arr[rt];
                    while(sum > m) {
                        sum -= arr[lt++];
                    }
                    answer += (rt - lt + 1);
                    //m이하의 연속 수열 갯수
                }
                return answer;
            }
            
            let a=[1, 3, 1, 2, 3];
            console.log(solution(5, a));