해결된 질문
작성
·
124
1
안녕하세요!
현재 postorder 트리 문제 풀었는데요!
선생님이 공유해주신 코드가
class Solution(object):
def lowestCommonAncestor(self, root, p, q):
if root == None:
return None
left = self.lowestCommonAncestor(root.left, p, q)
right = self.lowestCommonAncestor(root.right, p, q)
if root == p or root == q:
return root
elif left and right:
return root
return left or right
이렇게 인데 class에 대해서 잘 몰라서 그런지 이후로 어떻게 해야 답이 나오는지 모르겠습니다ㅜㅜ
result = Solution([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 6, 4)
이렇게 했는데 에러가 나는데 어떻게 해야할까요?
++ 선생님 파이썬 전자책으로 공부하고 했는데, 제가 잘 못찾아서 그런지 그때 클래스에 대해서 보지 못한것 같은데 설명해주셨으면 좋겠어요🙏🙏
답변 2
0
안녕하세요 dbskqnsghd님
클래스에 대한 설명은 이 링크를 보고 오시면 더 이해가 빠를거에요!
보고오셨으면, 이해가 되실텐데
Solution 클래스를 우리가 구현했잖아요.
이젠 생성자를 통해 Solution 객체를 생성할 수 있어요 ( 예시: solution_instance = Solution() )
그러면 solution_instance라는 객체가 만들어졌고, 해당 객체는 Solution 클래스 내부에 있는 여러 함수들(메서드)를 사용할 수 있어요!
solution_instance.lowestCommonAncestor([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 6, 4)
이런식으로!
뭐 굳이 solution_instance라는 변수를 선언하지 않더라도 아래와 같이 사용할 수 있어요
Solution().lowestCommonAncestor([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 6, 4)
그럼 이 결과값을 result 변수에 넣어볼게요.
result = Solution().lowestCommonAncestor([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 6, 4)
이렇게 사용하시면 됩니다.
혹시 더 궁금한게 있으면 편하게 질문주세요 :)
0
안녕하세요, 인프런 AI 인턴입니다. dbskqnsghd님의 질문에 대해 답변드리겠습니다.
주어진 코드는 이진 트리에서 두 노드의 가장 가까운 공통 조상(Lowest Common Ancestor, LCA)을 찾는 알고리즘을 구현한 것입니다. 질문자님이 보내주신 코드를 실행하려면 여러 단계를 거쳐야 합니다.
TreeNode
클래스를 정의해 트리의 노드를 나타냅니다.Solution
클래스의 ‘lowestCommonAncestor` 메서드를 호출하여 LCA를 찾습니다.질문자님이 명시한 문제 result = Solution([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 6, 4)
는 올바르게 트리를 생성하고 메서드를 호출하는 방식이 아닙니다. 이는 클래스 초기화와 사용 방법에 대한 더 깊은 이해가 필요함을 나타냅니다.
유사한 문제를 해결하기 위한 세세한 답변을 제공한 링크는 다음과 같습니다:
- 트리에 관해 질문 있습니다
- 이 답변에서는 배열을 통해 이진 트리를 생성하는 방법과 LCA 함수에 대해 설명하고 있습니다. 특히 array2tree
라는 보조 함수를 사용해 배열을 트리로 변환하는 방법을 포함하고 있습니다. 자세한 내용을 익히기 위해 해당 링크를 참조하시기를 권장합니다.
질문자님이 강의 중 클래스에 대한 설명을 찾지 못하신 것 같다고 하셨는데, 클래스와 객체 지향 프로그래밍에 대한 기본적인 개념을 다루는 자료를 추가로 찾아보시면 도움이 될 것입니다. 만약 인프런에 관련 강의가 있다면 해당 강의의 내용을 숙지하시는 것도 좋은 방법이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.