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

묘다님의 프로필 이미지
묘다

작성한 질문수

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

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

안녕하세요 강사님. 이 풀이도 맞을까요?

작성

·

121

0

function solution(num, a) {
  let p1 = 0;
  let p2 = 0;
  let sum = 0;
  let result = 0;

  for (let i = 0; i < a.length; i++) {
    sum += a[p2++];

    if (sum > num) {
      while (sum > num) {
        sum -= a[p1++];
      }
    }

    if (sum === num) {
      result++;
    }
  }

  return result;
}

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

for문 시작할떄 p1포인터 대신에 let i =0로 해봤는데 답이 나오는거같긴합니다

답변 1

1

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

안녕하세요^^

잘 하신 코드입니다.

if (sum > num) {
      while (sum > num) {
        sum -= a[p1++];
      }
    }

 

위 부분을 

while (sum > num) {
        sum -= a[p1++];
      }

if 문을 빼고 위에 같이만 해도 됩니다.

 

 

묘다님의 프로필 이미지
묘다

작성한 질문수

질문하기