Skip to content

[Sehwan]Added solutions for week1 #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Apr 29, 2024
Merged

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