[Inflearn] Java 알고리즘 : 4. 연속 부분수열
Updated:
Solution
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Main {
static int returnCases(int N, int M, int[] input) {
int answer = 0, sum = 0, lt = 0;
for (int rt = 0; rt < N; rt++) {
sum += input[rt];
if (sum == M) {
answer++;
}
while (sum >= M) {
sum -= input[lt++];
if (sum == M) {
answer++;
}
}
}
return answer;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine(), " ");
int[] input = new int[N];
for (int i = 0; i < N; i++) {
input[i] = Integer.parseInt(st.nextToken());
}
System.out.print(returnCases(N, M, input));
br.close();
}
}
Leave a comment