-
Notifications
You must be signed in to change notification settings - Fork 120
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
[강희찬] WEEK 8 Solution #502
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다! 제가 자스를 잘 몰라서 코드 리뷰가 아쉬우셨다면 반성 씨게하겠습니다 ㅠ
희찬님 파이팅 🥇
function dfs(node: _Node): _Node { | ||
if (map.has(node.val)) return map.get(node.val)!; | ||
|
||
const newNode = new _Node(node.val); | ||
map.set(node.val, newNode); | ||
|
||
for (let neighbor of node.neighbors) { | ||
newNode.neighbors.push(dfs(neighbor)); | ||
} | ||
|
||
return newNode; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
결국 문제를 풀기 위해서는 재귀적으로 풀어야 하는데, 주어진 cloneGraph
자체를 재귀 함수로 사용하는 방법도 괜찮은것 같습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아래와 같은 형태로 해당 함수의 params
를 변경한다면 cloneGraph
를 직접 재귀함수로 사용해도 최적의 풀이가 가능할 것 같네요
function cloneGraph(node: _Node | null, map?: Map<number, _Node>): _Node | null {
...
}
current = current.next; | ||
} | ||
|
||
current.next = list1 || list2; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
자스는 null이면 false를 반환하니 이게 가능하군요 :) 👍
maxCount = Math.max(maxCount, ++charCount[endCharIdx]); | ||
|
||
if (end - start + 1 - maxCount > k) { | ||
charCount[s.charCodeAt(start) - A]--; | ||
start++; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
전위, 후위 연산을 사용 하시는 기준이 궁금해요 :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
위 코드에서는 start
와 end
를 통해 윈도우의 크기를 줄이고 늘여가면서 maxCount
를 계산하고있습니다
저는 일반적으로 연산 순서에 영향받지 않는다면 후위 연산을 선호하는데요, 별다른 이유는 없고 익숙해서 그렇습니다 ㅎㅎ
다만 전위 연산을 사용한 ++charCount[endCharIdx]
의 경우에는 직전에 end가 +1로 증가한 상태이므로 maxCount
와 비교하기 위해서는 Math.max()연산 이전에 증감을 시킬 필요가 있으므로 전위 연산자를 사용했습니다!
답안 제출 문제
체크 리스트
In Review
로 설정해주세요.