강의

멘토링

로드맵

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

jadenswith님의 프로필 이미지
jadenswith

작성한 질문수

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

3. 연속부분수열1(Two Pointers Algorithm)

안녕하세요! 코드 리뷰 부탁드립니다.

작성

·

188

0

감사합니다 :)

 

function solution(m, arr) {
            let answer = 0;
            let n = arr.length
            let p1 = 0;
            let p2 = p1 + 1;
            let sum = arr[0];

            if(n===1){
                if(sum===m) {
                    answer++;
                    return answer;
                }
            }

            while (p2 < n) {
                sum += arr[p2];
                if (sum === m || sum-arr[p2]===m) {
                        answer++;
                        p1++;
                        p2 = p1 + 1;
                        sum = arr[p1];
                }
                else {
                    if (sum < m) p2++;
                    else {
                        p1++;
                        p2 = p1 + 1;
                        sum = arr[p1];
                    }
                }
            }
            return answer;
      }

퀴즈

투 포인터 또는 슬라이딩 윈도우 기법이 중첩 반복문보다 효율적인 주된 이유는 무엇일까요?

더 적은 메모리를 사용해서일까요?

코드가 더 짧아져서일까요?

대부분의 경우 O(N) 시간 복잡도를 달성해서일까요?

입력 데이터 크기에 영향을 받지 않아서일까요?

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
jadenswith님의 프로필 이미지
jadenswith

작성한 질문수

질문하기