inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코딩테스트 [ ALL IN ONE ]

postorder 문제 문의드립니다!

해결된 질문

171

dbskqnsghd

작성한 질문수 43

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)

이렇게 했는데 에러가 나는데 어떻게 해야할까요?

++ 선생님 파이썬 전자책으로 공부하고 했는데, 제가 잘 못찾아서 그런지 그때 클래스에 대해서 보지 못한것 같은데 설명해주셨으면 좋겠어요🙏🙏

 

python 코딩-테스트 알고리즘

답변 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 인턴

안녕하세요, 인프런 AI 인턴입니다. dbskqnsghd님의 질문에 대해 답변드리겠습니다.

주어진 코드는 이진 트리에서 두 노드의 가장 가까운 공통 조상(Lowest Common Ancestor, LCA)을 찾는 알고리즘을 구현한 것입니다. 질문자님이 보내주신 코드를 실행하려면 여러 단계를 거쳐야 합니다.

  1. TreeNode 클래스를 정의해 트리의 노드를 나타냅니다.
  2. 주어진 배열로부터 이진 트리를 생성합니다.
  3. Solution 클래스의 ‘lowestCommonAncestor` 메서드를 호출하여 LCA를 찾습니다.

질문자님이 명시한 문제 result = Solution([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 6, 4)는 올바르게 트리를 생성하고 메서드를 호출하는 방식이 아닙니다. 이는 클래스 초기화와 사용 방법에 대한 더 깊은 이해가 필요함을 나타냅니다.

유사한 문제를 해결하기 위한 세세한 답변을 제공한 링크는 다음과 같습니다:
- 트리에 관해 질문 있습니다
- 이 답변에서는 배열을 통해 이진 트리를 생성하는 방법과 LCA 함수에 대해 설명하고 있습니다. 특히 array2tree라는 보조 함수를 사용해 배열을 트리로 변환하는 방법을 포함하고 있습니다. 자세한 내용을 익히기 위해 해당 링크를 참조하시기를 권장합니다.

질문자님이 강의 중 클래스에 대한 설명을 찾지 못하신 것 같다고 하셨는데, 클래스와 객체 지향 프로그래밍에 대한 기본적인 개념을 다루는 자료를 추가로 찾아보시면 도움이 될 것입니다. 만약 인프런에 관련 강의가 있다면 해당 강의의 내용을 숙지하시는 것도 좋은 방법이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

노션 공유 링크

0

87

2

수업 중간에 내주신 문제는 해답을 알 수 없는걸까요?

0

78

2

최신 강의와 비교

0

85

2

Min Cost Climbing stairs 질문

0

76

2

노션 공유 부탁드립니다!

1

88

2

for 문에 sort 함수 를 사용하면

1

90

2

노션 공유 부탁드립니다.

0

104

2

디스코드가 올바르지 않다고 뜹니다..!

0

107

1

그래프

0

98

2

노션 공유

1

123

2

시간복잡도 질문

2

125

3

11강 질문

1

78

2

노션 공유 부탁드립니다

0

84

2

linkedList - BrowserHistory 코드 질문

0

76

1

list1.append(list2)와 list1.append(list2[:])의 차이가 무엇인가요?

1

168

1

라이브러리 사용

1

136

2

문제 교재는 따로 없는 거 맞나요?

1

202

2

LCA 관련해서 질문이 있습니다.

1

118

2

[Unique Paths] 완전탐색 / DP (후반부)

0

108

1

dp 계단오르기최소비용질문입니다.

0

109

1

Dynamic Array 의 size 정보가 저장되는 곳

2

161

2

노션공유가 안된듯 합니다

1

163

2

[코테 적용] 👉 [3번 문제] 완전탐색 (DFS, BFS) (전반부)

1

122

1

강의자료 만들 때 사용하신 프로그램이 뭘까요?

1

204

1