Skip to content
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

[JisooPyo] WEEK 02 solutions #709

Merged
merged 5 commits into from
Dec 22, 2024
Merged

[JisooPyo] WEEK 02 solutions #709

merged 5 commits into from
Dec 22, 2024

Conversation

JisooPyo
Copy link
Member

@JisooPyo JisooPyo commented Dec 15, 2024

답안 제출 문제

체크 리스트

  • 우측 메뉴에서 PR을 Projects에 추가해주세요.
  • Projects의 오른쪽 버튼(▼)을 눌러 확장한 뒤, Week를 현재 주차로 설정해주세요.
  • 바로 앞에 PR을 열어주신 분을 코드 검토자로 지정해주세요.
  • 문제를 모두 푸시면 프로젝트에서 StatusIn Review로 설정해주세요.
  • 코드 검토자 1분 이상으로부터 승인을 받으셨다면 PR을 병합해주세요.

@JisooPyo JisooPyo requested a review from a team as a code owner December 15, 2024 12:25
@JisooPyo JisooPyo requested a review from jungsiroo December 15, 2024 12:29
Comment on lines +38 to +45
* 배열을 쓰지 않고 변수를 사용하여 공간 복잡도를 개선한 버전입니다.
* Runtime: 0 ms(Beats: 100.00 %)
* Time Complexity: O(n)
* - n번 순회
*
* Memory: 34.06 MB(Beats: 15.90 %)
* Space Complexity: O(1)
* - 사용되는 추가 공간이 입력 크기와 무관하게 일정함
Copy link
Contributor

Choose a reason for hiding this comment

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

😎👍

* Time Complexity: O(n)
*
* Memory: 38.62 MB(Beats: 56.62 %)
* Space Complexity: O(n)
Copy link
Contributor

Choose a reason for hiding this comment

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

부연 설명에 Hashmap이라고만 적어 주셔서 이게

  1. Hashmap 할당에 필요한 추가적인 공간 복잡도가 해당 문제에선 지배적인데, 그 공간 복잡도가 O(N)이다 (그리고 재귀호출 스택에 대한 부분도 고려를 해야한다)
  2. 이 문제에서 필요한 추가적인 공간에 대한 복잡도는 해시맵만 고려하면 되고 그것은 O(N)이다
    둘 중 뭔지 헷갈리는 것 같아요

좀 더 정확한 표현을 써주시면 좋을 것 같습니다 :)

재귀호출 스택에 대한 부분도 고려를 하셨을지 궁금해서 코멘트 남기려다가 주석에 대한 피드백 남기고 갑니다

Copy link
Contributor

@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.

모든 문제를 너무 잘 푸신 것 같아요! 지극히 개인적인 생각을 코멘트로 좀 남겼으니 참고 바랍니다.

image

Comment on lines +103 to +104
sum > 0 -> right = skipDuplicates(nums, right, false)
sum < 0 -> left = skipDuplicates(nums, left, true)
Copy link
Contributor

Choose a reason for hiding this comment

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

아래서 중복 처리를 해주고 있는데 굳이 여기서 미리 해 줄 필요가 있을까 하는 생각이 들었습니다.

Suggested change
sum > 0 -> right = skipDuplicates(nums, right, false)
sum < 0 -> left = skipDuplicates(nums, left, true)
sum > 0 -> right--
sum < 0 -> left++

Comment on lines +80 to +86
// 첫 세 수의 합이 0보다 크거나, 마지막 세 수의 합이 0보다 작으면 불가능
val lastIndex = nums.size - 1
if (nums[0] + nums[1] + nums[2] > 0 ||
nums[lastIndex] + nums[lastIndex - 1] + nums[lastIndex - 2] < 0
) {
return emptyList()
}
Copy link
Contributor

Choose a reason for hiding this comment

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

와, 참신한 성능 최적화인 것 같습니다!

Comment on lines +30 to +36
var rootIndex = 0
for (i in inorder.indices) {
if (inorder[i] == root.`val`) {
rootIndex = i
break
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

indexOf() 함수를 사용했다면 좀 더 깔끔했겠는데? 라는 생각이 들었습니다.

Suggested change
var rootIndex = 0
for (i in inorder.indices) {
if (inorder[i] == root.`val`) {
rootIndex = i
break
}
}
val rootIndex = inorder.indexOf(root.`val`)

}

@Test
fun test() {
Copy link
Contributor

Choose a reason for hiding this comment

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

테스트 코드도 짜시는 것이 인상적이네요! 라이브 코딩에서 중요한 요소 중 하나죠! 이번주도 고생많으셨습니다~

@JisooPyo JisooPyo merged commit 66f7c20 into DaleStudy:main Dec 22, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Completed
Development

Successfully merging this pull request may close these issues.

4 participants