강의

멘토링

로드맵

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

오므라이스님의 프로필 이미지
오므라이스

작성한 질문수

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

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

저는 이렇게 풀어봤습니다

작성

·

157

0

선생님, 저는 이렇게 풀어봤는데 이것도 정답일까요..?

function solution(m, arr) {
  let cnt = 0;
  let sum = 0;
  let leftIndex = 0;

  for (let rightIndex = 0; rightIndex < arr.length; rightIndex++) {
    while (sum <= m) {
      cnt++;
      sum += arr[rightIndex];
    }
    if (sum > m) {
      sum -= arr[leftIndex];
      if (sum <= m) {
        cnt++;
      }
    }
  }
  return cnt;
}

let a = [1, 3, 1, 2, 3];
console.log(solution(5, a));
// 10

퀴즈

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

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

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

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

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

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

답변 1

0

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

안녕하세요^^

반례입니다.

let a = [10526];
console.log(solution(100, a));

답은 10입니다.

오므라이스님의 프로필 이미지
오므라이스

작성한 질문수

질문하기