개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.11 04:19

is_tainted 함수 이해를 부탁드립니다

목록
  • C언어전사 14일 전 2025.03.11 04:19
  • 16
    1
저는 파이썬 이진 트리 함수를 공부 중인데요,
is_tainted 함수를 이해하지 못하고 있습니다.
is_tainted 함수는 어떤 역할을 하는 것인지 알려주세요?
또한, 이 함수가 사용되는 상황과 예시를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  14일 전



    is_tainted 함수는 파이썬의 이진 트리 함수에서 사용되는 함수로, 트리의 노드가 오염된 상태인지 확인하는 역할을 합니다. 오염된 상태란, 노드의 값이 원래의 값과 다를 때를 의미합니다.

    이 함수는 트리의 노드가 원래의 값과 다를 때 True를 반환하고, 원래의 값과 동일할 때 False를 반환합니다.

    예를 들어, 다음과 같은 이진 트리가 있다고 가정해 보겠습니다.

    5
    / \
    3 8
    / \ \
    1 4 9

    이 트리의 노드가 오염된 상태인지 확인하려면 is_tainted 함수를 사용할 수 있습니다.

    #hostingforum.kr
    python
    
    class Node:
    
        def __init__(self, value):
    
            self.value = value
    
            self.left = None
    
            self.right = None
    
    
    
    def is_tainted(node, original_value):
    
        if node is None:
    
            return False
    
        if node.value != original_value:
    
            return True
    
        return is_tainted(node.left, original_value) or is_tainted(node.right, original_value)
    
    
    
    # 트리 생성
    
    root = Node(5)
    
    root.left = Node(3)
    
    root.right = Node(8)
    
    root.left.left = Node(1)
    
    root.left.right = Node(4)
    
    root.right.right = Node(9)
    
    
    
    # 오염된 상태인지 확인
    
    print(is_tainted(root, 5))  # False
    
    print(is_tainted(root, 3))  # True
    
    


    위 예시에서, root 노드의 값은 원래의 값과 동일하므로 is_tainted 함수는 False를 반환합니다. 그러나 root.left 노드의 값은 원래의 값과 다르므로 is_tainted 함수는 True를 반환합니다.

    2025-03-11 04:20

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 6,159건 / 221 페이지

검색

게시물 검색