이진 트리(binary tree)가 주어지고, 이진 트리의 노드(node)에서 각 노드의 val의 값이 1씩 증가하는 child로만 연결이 가능하고 가장 긴 path의 길이를 반환하면 된다. 재귀(Recursive)를 활용한 DFS(Depth First Search)로 풀었다. class Solution { private int M; public Solution() { M = 0; } private void dfs(TreeNode n, int cnt) { TreeNode l = n.left; TreeNode r = n.right; if (l != null) { if (n.val - l.val == -1) { dfs(l, cnt+1); } else { dfs(l, 1); } } if (r != null) ..
Binary Search Tree의 root node와 Target value가 주어지고, Tree의 모든 node를 탐색해 Target value의 가장 근사한 value를 가진 node를 return하면 된다. DFS를 통해 left child와 right child가 존재하면 계속 탐색해 나가는 방식으로 구현했다. class Solution: def closestValue(self, root: Optional[TreeNode], target: float) -> int: def dfs(node, target): l = r = math.inf if node.left != None: l = abs(node.left.val - target) if node.right != None: r = abs(node...
- Total
- Today
- Yesterday
- Computer Graphics
- defaultdict
- DICTIONARY
- min heap
- 안드로이드
- java
- join
- 리트코드
- tf-idf
- 이코노미스트 에스프레소
- 파이썬
- 오블완
- 머신 러닝
- socket programming
- 소켓 프로그래밍
- 티스토리챌린지
- 투 포인터
- 딕셔너리
- Python
- leetcode
- C++
- machine learning
- I2C
- 이코노미스트
- The Economist Espresso
- The Economist
- vertex shader
- Android
- ml
- Hash Map
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |