강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

양정우님의 프로필 이미지
양정우

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

4. 연속부분수열(복합적 문제)

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);

}
}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^ 

별 문제 없어 보입니다.

양정우님의 프로필 이미지
양정우

작성한 질문수

질문하기