반갑습니다!

[백준] 2003 수들의 합 2 본문

알고리즘 문제 풀이

[백준] 2003 수들의 합 2

김덜덜이 2020. 4. 17. 00:23
2003번: 수들의 합 2
 
www.acmicpc.net

풀이

투 포인터 알고리즘을 사용하여 해결하였다.

코드

#include <iostream>
#include <vector>
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n, m;
    int s = 0, e = 0;
    cin >> n >> m;
    vector<int> num(n);
    for (int i = 0; i < n; i++)
        cin >> num[i];

    int ans = 0;
    int sum = 0;
    while (true) {
        if (sum >= m) sum -= num[s++];
        else if (e == n) break;
        else sum += num[e++];
        if (sum == m) ans++;
    }
    cout << ans << '\n';
    return 0;
}