Skip to content

Conversation

nhistory
Copy link
Contributor

  • contains-duplicate
  • two-sum

Copy link
Member

@DaleSeo DaleSeo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와, 벌써 3문제나 푸셨네요? 조금만 더 화이팅입니다!

Comment on lines +19 to +24
// TC: O(n)
// SC: O(n)

console.log(containsDuplicate([1, 2, 3, 1])); // true
console.log(containsDuplicate([1, 2, 3, 4])); // false
console.log(containsDuplicate([1, 1, 1, 3, 3, 4, 3, 2, 4, 2])); // true
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

캬~ 복잡도 분석에 셀프 테스트까지? 멋지십니다! 👏👏👏

Comment on lines 21 to 22
map[s[i]] = map[s[i]] ? map[s[i]] + 1 : 1;
map[t[i]] = map[t[i]] ? map[t[i]] - 1 : -1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요렇게 작성하면 좀 더 자바스크립트 답지 않을까 생각해보았습니다.

Suggested change
map[s[i]] = map[s[i]] ? map[s[i]] + 1 : 1;
map[t[i]] = map[t[i]] ? map[t[i]] - 1 : -1;
map[s[i]] = (map[s[i]] ?? 0) + 1;
map[t[i]] = (map[t[i]] ?? 0) - 1;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 그렇네요! 피드백 감사드립니다. 그렇게 수정해 보겠습니다!

@DaleSeo DaleSeo added this to the week1 milestone Apr 28, 2024
@leokim0922
Copy link
Contributor

PR 이름 설정을 #19 처럼 고쳐주시면 좋을 것 같습니다!

@nhistory nhistory changed the title Added solutions for week1 [Sehwan]Added solutions for week1 Apr 29, 2024
@nhistory
Copy link
Contributor Author

PR 이름 설정을 #19 처럼 고쳐주시면 좋을 것 같습니다!
변경 완료하였습니다.

@leokim0922 leokim0922 merged commit fc70711 into DaleStudy:main Apr 29, 2024
Comment on lines +12 to +34
if (
(s[l] >= "a" && s[l] <= "z") ||
(s[l] >= "A" && s[l] <= "Z") ||
(s[l] >= "0" && s[l] <= "9")
) {
// 4. Check character with right pointer is alphanumeric character or not
if (
(s[r] >= "a" && s[r] <= "z") ||
(s[r] >= "A" && s[r] <= "Z") ||
(s[r] >= "0" && s[r] <= "9")
) {
// 5. Compare left and right pointer character
if (s[l].toLowerCase() !== s[r].toLowerCase()) {
return false;
} else {
l++;
r--;
}
// If not, go to next location for right pointer
} else r--;

// If not, go to next location for left pointer
} else l++;
Copy link
Member

@DaleSeo DaleSeo Apr 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nhistory 님, 코드가 이미 머지가 되었지만 사소한 피드백을 드리고 싶어서 코멘트 드립니다.
이 3중 중첩 조건문에 주석이 없었다면 코드를 바로 이해하기가 쉽지 않을 수도 있었겠다는 생각이 들었습니다.
아무래도 가독성이 떨어지는 코드는 일반적으로 코딩 인터뷰에서 지원자에게 불리하게 작용하거든요.
어떻게 하면 이 부분에서 조건 중첩을 줄일 수 있을지 한번 고민해보시면 좋을 것 같습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@DaleSeo 귀한 피드백 감사드립니다!
중첩 조건문을 줄이는 방법으로 다음과 같이 수정해 보았습니다.

  // 2. Iterate while loop with l<r condition
  while (l < r) {
    // 3. Check left and right pointer has alphanumeric character
    while (l < r && !isAlphanumeric(s[l])) l++;
    while (l < r && !isAlphanumeric(s[r])) r--;

    // 4. Compare left and right pointer character
    if (s[l].toLowerCase() !== s[r].toLowerCase()) {
      return false;
    }
    l++;
    r--;
  }
  return true;
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants