BST 13

BST 이진 검색 트리(height, Depth, DFS 검색 방법: inorder, preorder, postorder)

height 는 자식이 없는 노드가 1이고Depth 는 부모 root 노드가 1로 시작 DFS 검색 방법: 깊이 우선 탐색 (Depth-First Search, DFS)깊이 우선 탐색(DFS)은 코딩 인터뷰에서 가장 자주 등장하는 알고리즘 중 하나입니다. 주로 트리나 그래프를 탐색할 때 사용됩니다. 이 강의에서는 트리 탐색에 초점을 맞춰 설명하겠습니다. 트리 전체를 탐색하려면 모든 노드를 방문해야 합니다. 이때 사용할 수 있는 방법 중 하나가 깊이 우선 탐색입니다.기본 아이디어는 어떤 방향(예: 왼쪽) 을 먼저 선택해서, 해당 방향으로 갈 수 있을 때까지 계속 내려가는 것입니다. 즉, 왼쪽 자식 노드를 따라 계속 내려가다가 더 이상 노드가 없으면(null에 도달하면), 부모 노드로 되돌아가서 이번엔 오른..

BST: 4. Median of Two Sorted Arrays ★★★★★

4. Median of Two Sorted Arrays GPT 좋아요! 다시 처음부터 차근차근, 이 문제를 해결하기 위해 "왼쪽 부분의 최대값 ≤ 오른쪽 부분의 최소값" 조건이 필요한 이유와 이 조건을 중심으로 문제를 푸는 방식을 전체적으로 설명하겠습니다.문제의 목표두 개의 정렬된 배열 nums1과 nums2가 주어집니다.이 두 배열을 병합한 후 **중앙값(중간값, Median)**을 구해야 합니다.단, 병합하지 않고 O(log(m + n)) 시간 복잡도 안에 해결해야 합니다.중앙값(Median)의 정의중앙값은 정렬된 배열에서 중앙에 위치한 값입니다. 배열의 길이에 따라 정의가 달라집니다.배열의 길이가 홀수인 경우:중앙에 위치한 하나의 값이 중앙값.예: [1, 3, 5] → 중앙값은 3.배열의 길이가 짝..

BST: 875. Koko Eating Bananas ☆★★

875. Koko Eating Bananas https://youtu.be/U2SozAs9RzA?si=lxNzqfZ1jL_lzHUX from math import ceilfrom typing import Listclass Solution: def minEatingSpeed(self, piles: List[int], h: int) -> int: # 이진 탐색 범위 설정 # 최소 속도는 1 (최소 한 개라도 먹음), 최대 속도는 max(piles) (한 번에 가장 큰 더미를 모두 먹음) # Set the binary search range: # Minimum speed is 1 (at least one banana per hour), and maximu..