[LeetCode] 1038. Binary Search Tree to Greater Sum Tree [Python(파이썬)]
'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 (이진 탐색 트리(BST)를 터 큰 수 합계 트리로) BST의 각 노드를 현재값보다 더 큰 값을 가진 모든 노드의 합으로 만들어라. Input: root = [4,1,6,0,2,5,7,null,null,null,3,null,null,null,8] Output: [30,36,21,36,35,26,15,null,null,null,33,null,null,null,8] ex : 4 -> 4 + 5 + 6 + 7 + 8 = 30 2. 풀이 재귀탐색을 이용한 풀이 중위 순회로 노드 탐색 right -> now -> left 3. 코드 # Definition for a binary tree node. # class TreeNod..
2021. 11. 24.
[LeetCode] 938. Range Sum of BST [Python(파이썬)]
'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 (이진 탐색 트리(BST) 합의 범위) BST가 주어졌을 때 L 이상 R 이하의 값을 지닌 노드의 합을 구하라. Input: root = [4,1,6,0,2,5,7,null,null,null,3,null,null,null,8] Output: [30,36,21,36,35,26,15,null,null,null,33,null,null,null,8] ex : 4 -> 4 + 5 + 6 + 7 + 8 = 30 2. 풀이 재귀탐색과 DFS를 이용한 풀이 반복문과 DFS를 이용한 풀이 3. 코드 재귀탐색과 DFS를 이용한 풀이 # Definition for a binary tree node. # class TreeNode: # ..
2021. 11. 24.
[LeetCode] 310. Minimum Height Trees [Python(파이썬)]
'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 (최소 높이 트리) 노드 개수와 무방향 그래프를 입력받아 트리가 최소 높이가 되는 루트의 목록을 리턴하라. Input: n = 4, edges = [[1,0],[1,2],[1,3]] Output: [1] Input: n = 6, edges = [[3,0],[3,1],[3,2],[3,4],[5,4]] Output: [3,4] 2. 풀이 노드가 2개 이하가 될때까지 리프 노드를 순차적으로 제거한다 3. 코드 class Solution: def findMinHeightTrees(self, n: int, edges: List[List[int]]) -> List[int]: if n == 1: return [0] graph =..
2021. 11. 24.
[LeetCode] 108. Convert Sorted Array to Binary Search Tree [Python(파이썬)]
'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 (정렬된 배열의 이진 탐색 트리 변환) 오름차순으로 정렬된 배열을 높이 균형(Height Balanced) 이진 탐색 트리로 변환하라. Input: nums = [-10,-3,0,5,9] Output: [0,-3,9,-10,null,5] or [0,-10,5,null,-3,null,9] 2. 풀이 재귀탐색을 이용한 풀이 3. 코드 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = righ..
2021. 11. 24.