Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- vue
- 코테 파이썬
- 항해99
- 라라벨
- 개발자취업
- til
- flutter getx
- ML
- 99클럽
- 알고리즘
- DP
- C++
- react
- 안드로이드
- 뷰
- Flutter
- 코딩테스트 준비
- c++ 코테
- 파이썬
- Laravel
- Python
- 플러터
- 개발자 취업
- 코테
- 코딩테스트준비
- 백준
- 오블완
- 코딩테스트
- 파이썬 코테
- 티스토리챌린지
Archives
- Today
- Total
잡다로그
[99클럽 코테 스터디] 2일차 TIL - 깊이/너비 우선 탐색(DFS/BFS), Evaluate Boolean Binary Tree 본문
Algorithm
[99클럽 코테 스터디] 2일차 TIL - 깊이/너비 우선 탐색(DFS/BFS), Evaluate Boolean Binary Tree
날으는다람쥐 2024. 6. 1. 22:34[2일차] 깊이/너비 우선 탐색(DFS/BFS)
문제: https://leetcode.com/problems/evaluate-boolean-binary-tree/



* 대충 번역: full binary tree(모든 node의 child가 2개 or 0개인 트리)가 있다.
- 리프 node(자식이 없는 노드, 끝답)는 0 또는 1의 값을 가지고, 0은 False, 1은 True를 의미한다.
- 리프가 아닌 node들은 2 또는 3의 값을 가진다. 2는 OR을 의미하고, 3은 AND를 의미한다.
- 리프 노드의 평가는 해당 노드의 값이다. 즉 True 혹은 False이다.
- 리프 노드가 아니면, 노드의 boolean 연산을 노드의 두 자식에 적용한다.
root 노드를 평가하는 boolean 결과를 반환하라.
Solution
클래스에서 참조할 수 있는 값이 val, left, rigt이므로 재귀 호출을 통해 문제를 해결할 수 있다.
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def evaluateTree(self, root):
"""
:type root: Optional[TreeNode]
:rtype: bool
"""
if (root.left is None) or (root.right is None):
return root.val
if root.val == 2:
result = self.evaluateTree(root.left) or self.evaluateTree(root.right)
elif root.val == 3:
result = self.evaluateTree(root.left) and self.evaluateTree(root.right)
if result == 0:
return False
elif result == 1:
return True
나다어
- full binary tree - 모든 node의 child가 2개 or 0개인 트리
- evaluation - 표현식 트리는 수학적 표현식을 트리 구조로 나타낸 것이고, 표현식 트리에서의 evaluation(평가)는 트리를 순회하며 수학적 표현식의 값을 계산하는 과정
- 반복 연산 즉 재귀를 사용해야 할 때는 복잡한 케이스를 커버하려고 하지 말고, 어디에서 함수를 호출해버리면 될지 고민하자.
'Algorithm' 카테고리의 다른 글
| [99클럽 코테 스터디] 4일차 TIL - 깊이/너비 우선 탐색(DFS/BFS), Maximum Depth of Binary Tree (0) | 2024.06.03 |
|---|---|
| [99클럽 코테 스터디] 3일차 TIL - 깊이/너비 우선 탐색(DFS/BFS), Invert Binary Tree (0) | 2024.06.02 |
| [99클럽 코테 스터디] 1일차 TIL - 깊이/너비 우선 탐색(DFS/BFS), Find a Corresponding Node of a Binary Tree in a Clone of That Tree (0) | 2024.05.31 |
| [JS/코테] 코테용 기초 문법 - 배열, BFS 등 (0) | 2024.05.24 |
| [JS/코테] 자바스크립트 코테 표준입력 (0) | 2024.05.24 |
Comments