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

최정원님의 프로필 이미지
최정원

작성한 질문수

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

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

while 대신 else if

작성

·

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

}

}


 

답변 1

0

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

안녕하세요^^

네. if문을 줄여 간결하게 하기 위함입니다.

최정원님의 프로필 이미지
최정원

작성한 질문수

질문하기