강의

멘토링

로드맵

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

Joy Lee님의 프로필 이미지
Joy Lee

작성한 질문수

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

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

테스트 케이스 오류가 있는지 궁금합니다

작성

·

206

0

function solution(n, arr) {
  let count = 0,
    sum = 0,
    lt = 0,
    rt = 0;

  while (rt < arr.length) {
    if (sum < n) {
      sum += arr[rt++];
    } else if (sum > n) {
      sum -= arr[lt++];
    } else if (sum === n) {
      count++;
      sum -= arr[lt++];
    }
  }
  return count;
}
solution(6, [1, 2, 1, 3, 1, 1, 1, 2]) //3
 

강의에서는 for문을 썼는데 for문 없이 while 문으로만

문제를 풀어보았습니다. 문제 정답은 나오는데

혹시 다른 테스트 케이스 통과 안되는게 있는지 궁금합니다.

 

퀴즈

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

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

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

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

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

답변 1

0

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

안녕하세요^^

아래 입력은 안나오는 것 같습니다.

console.log(solution(3, [1, 1, 1, 1, 1, 1, 1]));//5
Joy Lee님의 프로필 이미지
Joy Lee

작성한 질문수

질문하기