inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Giới thiệu về giải quyết vấn đề thuật toán JavaScript (chuẩn bị cho bài kiểm tra mã hóa)

3. Thuật toán hai con trỏ

코드 리뷰 부탁드립니다.

115

wyswhsl21

6 câu hỏi đã được viết

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 코딩-테스트

Câu trả lời 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