인프런 커뮤니티 질문&답변
for문 대신 while문 사용
작성
·
235
0
안녕하세요. 투포인터로 문제 풀다가 궁금한 게 생겨 글 남깁니다!
for문 대신 while을 사용하였고, 첫번째 if에서 걸리고 나서, 그 결과값이 두번째 if에도 걸리도록 해놨습니다. 그리고 마지막 if문은 강의에서 말씀하신 것처럼 rt가 마지막까지 있을 때 sum이 m보다 클 경우 체크하였습니다! 제 if문이 틀린건가요?..
import java.util.*;
public class Main {
public static void main(String[] args) {
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();
}
int cnt = 0;
int sum = 0;
int rt = 0;
int lt = 0;
while (rt < n) {
sum += arr[rt++];
if (sum > m) {
sum -= arr[lt++];
}
if (sum == m) {
cnt++;
sum -= arr[lt++];
}
if (rt == n-1) {
while (sum >= m) {
sum -= arr[lt++];
if (sum == m) {
cnt++;
}
}
}
}
System.out.println(cnt);
}
}





