강의

멘토링

로드맵

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

seal님의 프로필 이미지
seal

작성한 질문수

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

4. 연속부분수열2(Two Pointers Algorithm)

안녕하세요. 혹시 코드 확인 한번만 가능할까요?

작성

·

151

0

function solution(total, arr) {
  let count = 0;

  for (let i = 0; i < arr.length; i++) {
    let addedIndex = i + 1;
    let sum = arr[i];
    
    while (sum < total) {
      if (sum <= total) count++;
      sum += arr[addedIndex++];
    }
    if (sum === total) count++;
  }
  return count;
}

퀴즈

45%나 틀려요. 한번 도전해보세요!

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

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

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

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

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

답변 1

1

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

안녕하세요^^

위와 같은 코드는 시간복잡도가 O(n^2)입니다. 영상의 방법은 O(n)이니 영상의 방법을 익히시기 바랍니다.

강사님 위 코드가 강사님의 풀이처럼 for 하나에 while 문 하나인데 왜 시간복잡도가 O(n^2)인지 모르겠는데 알려주실 수 있나요..?

seal님의 프로필 이미지
seal

작성한 질문수

질문하기