메모리 | 시간 | 길이 |
---|---|---|
14416 KB | 180 MS | 820 B |
우선 그냥 구현하면 되는 문제였는데, 해당 문제는 투포인터
로 분류되어 있다. 해당 개념 없이도 구현은 인덱스 두개로 할 수 있었는데, 이상하게 시간이.. 제출코드를 보면 로직이 중복된 부분들이 있어서, 나중에 수정해보기!
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
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[] arr = new int[N];
for(int n=0; n<N; n++) {
arr[n] = Integer.parseInt(st.nextToken());
}
int ans = 0, sum = 0;
for(int i=0; i<N; i++) {
sum += arr[i];
if(sum>=M) {
if(sum==M) ans++;
sum = 0;
continue;
} else {
for(int j=i+1; j<N; j++) {
sum += arr[j];
if(sum>=M) {
if(sum==M) ans++;
sum = 0;
break;
}
}
sum = 0;
}
}
System.out.print(ans);
}
}