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

frenchkebab님의 프로필 이미지
frenchkebab

작성한 질문수

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

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

선생님이 올려주신 코드에 대해 질문이 있습니다!

작성

·

89

0

function solution(marr) {
  let answer = 0,
    l = 0,
    sum = 0;
  for (let r = 0r < arr.lengthr++) {
    sum += arr[r];
    if (sum === manswer++;
    while (sum >= m) {
      sum -= arr[l++];
      if (sum === manswer++;
    }
  }
  return answer;
}

이게 선생님 올려주신 코드이구요,

for (let r = 0r < arr.lengthr++) {
  sum += arr[r];
  while (sum >= m) {
    if (sum === manswer++;
    sum -= arr[l++];
  }
}

for문 안을 이렇게 수정해도 코드가 잘 동작하더라구요

굳이 while문 위에 sum === m 코드를 하나 더 중복해서 빼 주어야하는 이유가 있을까요?

답변 1

0

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

안녕하세요^^

네 위에처럼 해도 되네요. 아마 설명하기 쉬워서 그렇게 하지 않았나 생각되네요.

frenchkebab님의 프로필 이미지
frenchkebab

작성한 질문수

질문하기