본문 바로가기
Algorithm 💫/Problem Solving

[백준] 2003번: 수들의 합2 / C++

by 돼지고기맛있다 2021. 9. 30.
반응형

✏️ 문제 링크

https://www.acmicpc.net/problem/2003

 

2003번: 수들의 합 2

첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.

www.acmicpc.net

 

 

✏️ 문제 설명 (더보기 클릭 👆🏻)

 

✏️ 문제 코드

#include <bits/stdc++.h>

using namespace std;

vector<int> A;
int main(){
    int N,n, M; cin>>N>>M;
    n=N;
    while(n--){
        int a; cin>>a; A.push_back(a);
    }
    
    int l=0, r=0;
    long sum=0, ans=0;
    while(r<=N){
        if(sum<M){
            sum+=A[r++];
        }else if(sum>M){
            sum-=A[l++];
        }else{
            ans++;
            sum+=A[r++];
            continue;
        }
    }
    cout<<ans<<"\n";
    return 0;
}

 

 

 

 ⭐ if feedback and question : comment please⭐  

 

 

 

 

 

반응형

댓글