특정 합 M이 첫줄에 주어지고, 두번째 줄에 배열이 주어질 때 특정 합을 만족하는 연속부분집합의 개수를 구하는 방법
5
1 2 3 2 5
3
포인터 start 와 end를 지정하여, sum값을 누적해가며 end를 증가시킨다.(while sum<target) → 이후, target==sum을 비교하여 만족하면 count누적
for문 마지막마다 sum - arr[start]적용
import java.util.*;
public class testcode {
public static void main(String[] args) {
solution(new int[] {1,2,3,2,5});
}
public static void solution(int[] arr){
int end = 0;
int sum = 0;
int target = 5;
int count = 0;
for(int start = 0; start<arr.length;start++){
while(sum<target && end<arr.length){
sum = sum + arr[end];
end++;
}
if(sum==target){
count++;
}
sum = sum-arr[start];
}
System.out.println(count);
}
}