문제 링크

  • 나의 풀이

투 포인터 알고리즘 : 연속적인 값을 이용하여 특정 목표에 맞는 값을 찾아주는 알고리즘

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

using namespace std;

int N, M;
int nums[10000];

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

    cin >> N >> M;
    for (int i = 0; i < N; i++)
    {
        cin >> nums[i];
    }

    int st = 0, ed = 0, sum = nums[ed], ans = 0;

    while (ed != N)
    {
        if (sum >= M)
        {
            if (sum == M)
                ans++;
            sum -= nums[st];
            st++;
        }
        else
        {
            ed += 1;
            sum += nums[ed];
        }
    }

    cout << ans << "\n";

    return 0;
}

댓글남기기