백준 2003 수들의합2

백준 2003 수들의 합 2

문제

풀이

1. 투포인터

#include <iostream>
#include <vector>

using namespace std;

int main(){
    int n, m, ret=0, sum=0;
    cin>>n>>m;
    vector<int> perm(n);
    for(int left=0, right=0; right<n; ++right) {
        cin>>perm[right];
        sum+=perm[right];
        while(sum>m) sum-=perm[left++];
        if(sum==m) ret++;
    }
    cout<<ret;
    return 0;
}

부분합이 단조증가한다는 사실로 인해 사용 가능한 방법


[jungin]
Written by@[jungin]
안녕하세요

GitHub