작성
·
283
0
while문 사용하는 이유가 if(sum==m) answer++;
같은 코드 반복 하지 않기 위함이겠죠???
아니면 또 다른 이유가 있을까요~?
감사합니다.
import java.util.Scanner;
public class Main {
public int solution(int n, int m, int[] arr) {
int answer = 0, lt=0, sum=0;
for(int rt=0; rt<n; rt++) {
sum += arr[rt];
if(sum==m) answer++;
else if(sum>=m) {
sum -= arr[lt++];
if(sum==m) answer++;
} else {
sum+=arr[rt];
if(sum==m) answer++;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++) {
arr[i] = sc.nextInt();
}
System.out.println(T.solution(n,m,arr));
}
}