inflearn logo
강의

Course

Instructor

Introduction to Javascript Algorithm Problem Solving (Coding Test Preparation)

3. Continuous Subsequence 1 (Two Pointers Algorithm)

코드 리뷰 부탁드립니다.

115

wyswhsl21

6 asked

0

문제를 보고 제가 직접 먼저 풀어봤는데 답은 맞게 나오는데 , 뭔가 좀 허술한 부분이 있을거 같아서요 ,

코드 리뷰좀 부탁드립니다.

 

 

function solution(a, b, c) {
  let cnt = 0;
  let sum = 0;
  let lt = (rt = 0);
  while (lt < a && rt < a) {
    rt++;
    sum += c[rt];
    if (sum === b) {
      cnt++;
      lt++;
      sum -= c[lt];
    }
  }
  return cnt;
}

javascript 코딩-테스트

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. wyswhsl21님.

먼저 직접 문제를 풀어보신 열정에 박수를 보냅니다! 코드 리뷰 요청 감사드립니다. 현재 작성해 주신 코드에 대해 몇 가지 짚어보겠습니다.

코드 리뷰 및 개선 제안

  1. 초기 인덱스 관리:

    • rtlt가 0에서 시작되지만, sum 계산에서 c[rt]만 더하고 있습니다. 이를 통해 rt가 증가되기 전에 sum에 이미 더해지게 되어, 첫 번째 요소를 놓치는 오류가 발생할 수 있습니다. rt의 초기 증가를 고려해 보시는 것이 좋습니다.
  2. 종료 조건 확인:

    • while(lt < a && rt < a) 라는 조건은 배열의 끝까지 탐색하기 전에 종료될 수 있습니다. rt < a 조건은 서브배열의 끝 부분을 놓치는 문제를 야기할 수 있습니다. 여기선 rt가 범위 초과시에만 종료하게 하는 것이 좋을 것 같습니다.
  3. lt 관리 및 인덱스 업데이트:

    • 요소를 카운팅 후 lt를 증가시키고 sum에서 빼고 있지만, ltrt가 최종 위치까지 가서도 단독으로 증가되고 있습니다. 이런 경우, lt를 증가시키기 전 충분히 rt 증가 조건을 판단하세요.

위 사항을 바탕으로 코드를 수정해 보실 수 있습니다. 각 인덱스 관리와 갱신에 주의를 기울이면 좀 더 견고한 코드가 될 것입니다.

비슷한 질문을 다룬 예시가 있으면 도움이 될 수 있습니다. 다음 게시물을 참고해 보시는 것을 추천드립니다:

위 링크에서는 유사한 연속 부분 수열 문제를 풀면서 얻을 수 있는 인사이트와 개선점이 포함되어 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

continue를 사용하는 이유

0

75

2

정렬 가능 여부 판단하기

0

62

2

알고리즘 학습법 관련해서 질문드립니다.

0

80

1

코드 리뷰 부탁드립니다!

0

88

1

indexOf를 사용해서 풀어보았습니다 !!

0

67

1

저는 이런식으로 구현 해보았습니다 !!

0

62

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

97

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

61

1

영상 보기 전에 직접 풀어봤습니다.

0

71

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

133

2

정규표현식으로 처리해도 상관없나요 ?

0

119

2

3칸씩 건너뛸 수 있을 경우

0

124

2

강의에 대해 질문있습니다.

0

133

2

Object와 Set을 이용해 풀어봤습니다.

0

116

2

이렇게 해도 되나요?

0

102

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

144

2

이렇게 풀어도 괜찮을까요?

0

136

1

이렇게 풀어도 괜찮을까요?

0

112

1

모든 아나그램 찾기에서 시간복잡도

0

98

1

코드리뷰 부탁드립니다.

0

129

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

129

1

투포인트알고리즘으로 풀어봤습니다.

0

138

0

코드 맞게 작성한 거 아닌가여??

0

142

1

문드윽뀨

0

96

1