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

Add files via upload #13

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Add files via upload #13

wants to merge 1 commit into from

Conversation

cham1ng
Copy link
Collaborator

@cham1ng cham1ng commented May 24, 2022

<추가제출>
1068, 15681, 1713, 1967, 양궁대회

<추가제출>
1068, 15681, 1713, 1967, 양궁대회
Copy link

@bsa0322 bsa0322 left a comment

Choose a reason for hiding this comment

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

추가제출 5문제 확인되었습니다 😊

전체적으로 문제와 코드 이해를 잘 숙지해주지 못한 부분이 보이네요 😥
추가제출은 문제를 보고, 풀이를 깊게 고민해보고, 그래도 못 푼 문제일 경우에 샘플코드를 보면서 아 이렇게 푸는 문제였구나를 이해하며 주석을 써야 민채님의 공부에도 훨씬 도움이 될 수 있어요!
풀이 방법을 많이 고민 안 해봤다면 맞았습니다가 뜬 코드를 봐도 어떤 풀이로 푼 것인지 캐치하기가 어렵겠죠.
현재 알고리즘 공부에 쏟을 시간이 많이 없다고 느껴지시면, 지금 튜터링을 따르는 것보다 초급 커리큘럼을 스스로 복습하시는 걸 더 추천드립니다!
우선 지금 과제는 추가제출로 인정을 해드리지만, 다음에도 코드를 이해하지 않고 한 문장, 한 문장씩에 대한 설명을 쓴 지금 주석은 추가제출로 인정해드리기 힘들어요.

고민해보시고, 연락 주시면 감사하겠습니다! 수고하셨습니다 😊

Comment on lines +15 to +16
if node == erase_node: #노드는 지워진 노드
return 0 #리턴 0
Copy link

Choose a reason for hiding this comment

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

해당 조건문은 현재 탐색하는 정점이 지울 노드일 경우, 서브트리에 속한 정점이 모두 지워지는 거니까 더 이상 탐색하지 않고 0을 리턴하는 부분입니다!

Comment on lines +17 to +18
if not tree[node] or (len(tree[node]) == 1 and tree[node][0] == erase_node): #만약드리가 아니거나 길이가 1 그리고 트리가 지워진 노드
return 1 #리턴 1
Copy link

Choose a reason for hiding this comment

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

해당 조건문에서 우선 not tree[node] 는 리프노드일 경우를 판단하는 부분입니다. tree[node]의 사이즈가 0이라면 해당 노드가 리프노드인 거고, 리프노드의 개수를 저희는 세야 하니까 1을 리턴해주는거죠!
그리고 두 번째 조건인 (len(tree[node]) == 1 and tree[node][0] == erase_node)은 현재 정점의 자식 정점이 유일하게 하나인데, 만약 그 자식 정점이 지우는 정점이라면 자식이 없어지면서 현재 정점이 리프노드가 되므로 1을 리턴해주도록 하는 부분입니다!

리프 노드의 개수를 구하는 부분은 저희 트리 튜터링 피피티 자료에도 설명이 나와있으니 꼭 참고해주시면 좋을 것 같아요 😊

Comment on lines +14 to +15
if subtree_cnt[curr] != -1: #만일 끝까지 갔다면
return subtree_cnt[curr] #리턴
Copy link

Choose a reason for hiding this comment

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

해당 부분은 이미 해당 정점을 루트로 한 서브 트리의 개수가 구해져 있을 경우 (subtree_cnt[curr]에 값이 있는 경우) 를 판단해서 값을 리턴해주는 부분입니다. 이렇게 함으로써 이미 구한 값을 활용해 불필요한 연산을 줄일 수 있는 것이죠! 저희 초급 커리큘럼 때 다뤘던 dp 피피티에 재귀를 활용한 dp(top-down 방식)를 참고해주시면 좋을 것 같습니다.

Comment on lines +19 to +20
if next == parent: #다음은 부모 노드
continue #계속
Copy link

Choose a reason for hiding this comment

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

해당 부분은 현재 탐색하는 정점(node)의 자식 정점(next)를 검사해야 하는데, 양방향 그래프로 트리 값을 저장했으므로 부모 노드(parent)를 탐색하지 않도록 걸러주는 부분입니다! 😊

@cham1ng
Copy link
Collaborator Author

cham1ng commented Jun 1, 2022

@bsa0322 안녕하세요! 확인이 늦어서 죄송합니다ㅜㅠ
부끄럽지만 제가 봐도 엉망인 주석인지라,, 이렇게 하나하나 코멘트 달아주셔서 정말 감사하고 죄송하네요.
어떻게든 끝까지 하려고 했는데 확실히 튜터님 말씀대로, 초급을 복습하는 쪽으로 하는게 좋을 것 같습니다!
정말 감사합니다:) 늘 좋은 일만 가득하길 빌게요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants