부분 수열의 합이 M이 되는 경우의 수를 구하는 문제이다.
두 포인터를 다루는 기본적인 문제로 개념 설명을 하도록 하겠습니다.
import java.io.*;
import java.util.*;
class baek__2003 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] temp = br.readLine().split(" ");
        int n = Integer.parseInt(temp[0]);
        int m = Integer.parseInt(temp[1]);
        int[] nums = new int[n];
        temp = br.readLine().split(" ");
        for (int i = 0; i < n; i++) {
            nums[i] = Integer.parseInt(temp[i]);
        }
        int i = 0;
        int j = 0;
        int cnt = 0;
        int sum = nums[0];
        while (true) {
            if (sum == m)
                cnt++;
            if (sum < m) {
                j++;
                if (j == nums.length)
                    break;
                sum += nums[j];
            } else {
                sum -= nums[i];
                i++;
            }
        }
        System.out.print(cnt);
    }
}