1) 포인터 2개가 같은 방향으로 진행해 나아가는 것
2) 포인터 2개가 양끝에서 반대로 진행하는 것
3) 포인터 하나는 한쪽 방향으로만 진행, 다른 포인터는 양쪽으로 이동
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class numSum_2003 {
public static void solution() throws IOException{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n= Integer.parseInt(st.nextToken());
int m= Integer.parseInt(st.nextToken());
int[] arr = new int[n];
st = new StringTokenizer(bf.readLine());
for(int i=0;i<n;i++){
arr[i] = Integer.parseInt(st.nextToken());
}
int end = 0;
int sum = 0;
int count = 0;
for(int i=0;i<n;i++){
//끝나는 포인터 밀기
while(sum<m && end<n){
sum += arr[end];
end++;
}
if(sum == m){
count++;
}
//시작포인터 밀기
sum -= arr[i];
}
System.out.println(count);
}
}