거북이개발자

[인프런] 연속 부분수열1 본문

Algorithm(JavaScript)

[인프런] 연속 부분수열1

류정식 2021. 7. 7. 14:33

0. 제목

  • 연속 부분수열1

1. 문제


2. 풀이

  • 투포인터 알고리즘을 이용한다.
  • p1은 오른쪽으로 더해나가고, p2는 합이 m보다 크거나 같을때 빼진다.

 


3. 코드


function solution(m, arr) {
    let answer = 0
    var p1=0;
    var p2=0;
    var n=arr.length;
    var sum=0;
    while(p1<n){
        
        if(sum===m){
            answer=answer+1;
            sum-=arr[p2];
            p2++;
            continue;
        }
        if(sum>m){
            sum-=arr[p2];
            p2++;
            continue;
        }

        sum+=arr[p1]
        p1++
        console.log(sum)

    }


    return answer;
}

let a = [1, 2, 1, 3, 1, 1, 1, 2];
console.log(solution(6, a));

 

 

Comments