강의

멘토링

커뮤니티

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

개발하는쿼카님의 프로필 이미지
개발하는쿼카

작성한 질문수

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

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

같을때도 빼는 이유

작성

·

333

1

안녕하세요~ 태원님

강의 7분42초 쯤에 같아도 빼는 이유가 이해가 안됩니다...

public int solution(int num, int sumResult, int[] arr) {
    int answer = 0;
    int sum = 0;
    int lt = 0;
    for(int rt = 0; rt < num; rt++) {
        sum += arr[rt];
        if(sum == sumResult) {
            answer++;
        }
        //같아도 빼야함
        while (sum >= num) {
            sum -= arr[lt++];
            if(sum == num) answer++;
        }
    }

    return answer;
}

while에 해당하는 내용 입니다.

감사합니다.

답변 1

2

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

안녕하세요^^ 영상의 방법은 좋지 않은 코드라 생각되어 요즘은 아래와 같이 짭니다.

다음 코드를 잘 분석해서 익히시면 좋겠습니다. 아래 코드해설은 추석때 시간이 있어 기존 영상을 아래 코드 해설로 교체하려고 합니다.

public int solution(int num, int sumResult, int[] arr) {
    int answer = 0;
    int sum = 0;
    int lt = 0;
    for(int rt = 0; rt < num; rt++) {
        sum += arr[rt];
        while (sum > sumResult) {
            sum -= arr[lt++];
        }
        if(sum == sumResult) {
            answer++;
        }
    }

    return answer;
}

 

 

개발하는쿼카님의 프로필 이미지
개발하는쿼카

작성한 질문수

질문하기