AVL 트리 삭제: 높이 갱신과 연속 균형 복구
AVL 삭제를 BST의 세 가지 삭제에서 시작해 높이 갱신과 조상 회전으로 연결합니다. 자식 균형 계수 0, 후계자 경로와 빈 트리까지 확인합니다.
컴퓨터과학의 기초와 자료구조를 익히고, 알고리즘 문제를 직접 풀며 풀이 과정을 확인합니다.
총 131개의 글
AVL 삭제를 BST의 세 가지 삭제에서 시작해 높이 갱신과 조상 회전으로 연결합니다. 자식 균형 계수 0, 후계자 경로와 빈 트리까지 확인합니다.
배열을 아래에서 위로 최대 힙으로 만들고 루트를 정렬 구간 끝으로 옮깁니다. 별도 힙에 push·pop하는 방식과 구분해 같은 배열 안에서 heapify와 정렬을 수행합니다.
선택 집합을 가로지르는 최소 간선으로 신장 트리를 키웁니다. 다익스트라의 누적 거리와 구분하고, 연결되지 않은 입력은 최소 신장 숲으로 명시해 반환합니다.
겹치지 않는 일정의 개수를 최대로 만드는 종료 시각 우선 탐욕법을 배웁니다. 맞닿은 구간의 처리와 교환 논증을 작은 일정표로 확인합니다.
큰 동전부터 고르는 과정을 몫과 나머지로 추적합니다. 동전 1·3·4로 6을 만들 때의 반례를 통해 실행 가능성과 최소 개수를 구분합니다.
같은 그래프를 DFS와 BFS로 탐색하며 방문 순서와 거리의 차이를 비교합니다. BFS에서 큐에 넣을 때 방문을 기록해야 하는 이유도 확인합니다.
인접 리스트와 visited의 역할을 분리하고, 작은 순환 그래프에서 DFS의 호출·복귀 순서를 따라갑니다. 한 시작점으로 방문할 수 없는 정점도 구분합니다.
피보나치의 작은 답을 먼저 채우면 재귀 호출 없이 다음 답을 계산할 수 있습니다. 계산 순서를 확인하고 두 변수만 남길 수 있는 조건을 배웁니다.
이미 계산한 작은 문제의 답을 보관하면 같은 재귀를 다시 풀지 않아도 됩니다. 피보나치 호출을 따라가며 상태, 저장 시점, 시간과 스택 비용을 배웁니다.
첫 값을 피벗으로 삼아 작고 큰 구간을 나누며, 최악 시간과 재귀 깊이가 서로 다른 문제임을 설명합니다.
무엇을 도와드릴까요?
이 글과 함께 공부하기
읽다가 막힌 부분을 물어보세요. 이 글을 바탕으로 설명하고, 이어서 읽을 본문을 연결합니다.