Coding Test 72

구간 트리 (Interval Trees) - leetcode (11)

구간 트리 관련 문제는 주로 세그먼트 트리, Fenwick 트리, 또는 이진 탐색 트리를 활용합니다.Easy:Merge Intervals (LeetCode 56)설명: 주어진 구간을 병합합니다.핵심 개념: 정렬과 병합.Insert Interval (LeetCode 57)설명: 주어진 구간 리스트에 새로운 구간을 삽입합니다.핵심 개념: 이진 탐색과 병합.Non-overlapping Intervals (LeetCode 435)설명: 겹치지 않는 구간을 만들기 위해 제거해야 할 최소 구간 개수를 찾습니다.핵심 개념: 정렬과 그리디.Medium:Range Sum Query 2D - Immutable (LeetCode 304)설명: 2D 행렬에서 주어진 범위의 합을 계산합니다.핵심 개념: 구간 합 배열.Inter..

동적인 순서 통계 (Dynamic Order Statistics) - leetcode (8)

이 주제는 일반적으로 이진 탐색 트리, 세그먼트 트리, 또는 펜윅 트리를 활용하여 해결합니다.Easy:Find Kth Largest XOR Coordinate Value (LeetCode 1738)설명: 좌표값의 XOR 결과에서 k번째로 큰 값을 찾습니다.핵심 개념: 우선순위 큐와 정렬.Rank Teams by Votes (LeetCode 1366)설명: 팀의 투표 결과를 순위화합니다.핵심 개념: 해시 맵과 정렬.Sort Characters By Frequency (LeetCode 451)설명: 문자 빈도에 따라 문자열을 정렬합니다.핵심 개념: 우선순위 큐.Medium:Orderly Queue (LeetCode 899)설명: 주어진 규칙에 따라 문자열을 정렬합니다.핵심 개념: 우선순위 큐.Count of..

레드-블랙 트리 (Red-Black Tree) - leetcode (10)

레드-블랙 트리는 LeetCode에서 직접적으로 다루지 않지만, 그 개념을 기반으로 동작하는 문제들이 있습니다. 주로 BST 또는 균형 트리와 연관된 문제들입니다.Easy:Convert Sorted Array to Binary Search Tree (LeetCode 108)설명: 정렬된 배열을 높이 균형 이진 탐색 트리로 변환합니다.핵심 개념: 재귀와 분할 정복.Minimum Absolute Difference in BST (LeetCode 530)설명: BST에서 두 노드 간의 최소 차이를 찾습니다.핵심 개념: 중위 순회.Insert into a Binary Search Tree (LeetCode 701)설명: BST에 새로운 노드를 삽입합니다.핵심 개념: 재귀적 삽입.Find Mode in Binar..

k-Select (kth-order statistics) - leetcode (26)

Easy:Kth Largest Element in a Stream (LeetCode 703)설명: 데이터 스트림에서 k번째로 큰 요소를 추적합니다.핵심 개념: 최소 힙을 이용한 k번째 큰 요소 유지. Kth Missing Positive Number (LeetCode 1539)설명: 정렬된 배열에서 누락된 k번째 양의 정수를 찾습니다.핵심 개념: 이진 탐색을 통한 위치 파악.Kth Smallest Number in Multiplication Table (LeetCode 668)설명: m x n 곱셈표에서 k번째로 작은 숫자를 찾습니다.핵심 개념: 이진 탐색과 카운팅.Kth Smallest Element in a BST (LeetCode 230)설명: 이진 탐색 트리에서 k번째로 작은 요소를 찾습니다.핵심..

균형잡힌 이진 트리 (Balanced Binary Tree) - leetcode (40)

Easy:Balanced Binary Tree (LeetCode 110)설명: 주어진 이진 트리가 높이 균형 트리인지 확인합니다.핵심 개념: 재귀를 이용한 트리 깊이 계산.Maximum Depth of Binary Tree (LeetCode 104)설명: 이진 트리의 최대 깊이를 구합니다.핵심 개념: DFS를 이용한 깊이 계산.Minimum Depth of Binary Tree (LeetCode 111)설명: 이진 트리의 최소 깊이를 구합니다.핵심 개념: BFS를 이용한 최소 깊이 탐색.Symmetric Tree (LeetCode 101)설명: 이진 트리가 좌우 대칭인지 확인합니다.핵심 개념: 재귀를 통한 대칭 검사.Same Tree (LeetCode 100)설명: 두 트리가 동일한지 확인합니다.핵심 개..

Augmenting Data Structures - leetcode (30)

Easy:Two Sum (LeetCode 1)설명: 주어진 배열에서 두 수의 합이 특정 값이 되는 인덱스를 찾습니다.핵심 개념: 해시 맵을 이용한 효율적인 탐색.Contains Duplicate (LeetCode 217)설명: 배열에 중복된 요소가 있는지 확인합니다.핵심 개념: 집합(Set)을 활용한 중복 검사.Intersection of Two Arrays (LeetCode 349)설명: 두 배열의 교집합을 구합니다.핵심 개념: 해시 맵과 집합을 이용한 교집합 연산.First Unique Character in a String (LeetCode 387)설명: 문자열에서 처음으로 반복되지 않는 문자의 인덱스를 찾습니다.핵심 개념: 해시 맵을 통한 문자 빈도 계산.Majority Element (LeetC..

Knapsack 문제(배낭 문제) : DP 최적화

**Knapsack 문제(배낭 문제)**는 조합 최적화 문제로, 주어진 조건 하에서 최대 또는 최적의 결과를 찾는 문제입니다. 이 문제는 동적 계획법(Dynamic Programming)이나 탐욕법(Greedy Algorithm)을 활용하여 풀 수 있습니다. 배낭 문제는 크게 두 가지로 나눌 수 있습니다. 1. 0-1 Knapsack 문제def knapsack(weights, values, W): n = len(weights) dp = [[0] * (W + 1) for _ in range(n + 1)] for i in range(1, n + 1): for w in range(W + 1): if weights[i-1]  2. Unbounded Knapsack..

문자열 탐색|| (65)

슬라이딩 윈도우 문제EasyMaximum Average Subarray I (LeetCode 643)설명: 고정 크기 윈도우의 평균 값 중 최대값을 찾습니다.핵심 개념: 슬라이딩 윈도우.Find All Anagrams in a String (LeetCode 438)설명: 문자열에서 모든 애너그램의 시작 인덱스를 찾습니다.핵심 개념: 슬라이딩 윈도우, 해시맵.Contains Duplicate II (LeetCode 219)설명: 배열에서 특정 거리 내에서 중복값이 존재하는지 확인합니다.핵심 개념: 슬라이딩 윈도우, 해시맵.Longest Substring Without Repeating Characters (LeetCode 3)설명: 중복 없는 가장 긴 부분 문자열을 찾습니다.핵심 개념: 슬라이딩 윈도우, ..

문자열 심화: Naive String Matching (4)과 Boyer-Moore 알고리즘 (7)

Naive String Matching 관련 문제28. Find the Index of the First Occurrence in a String (strStr) (Easy)설명: 주어진 두 문자열에서 특정 패턴 문자열의 시작 인덱스를 반환합니다.핵심 개념: 문자열 비교, Naive String Matching.796. Rotate String (Easy)설명: 두 문자열이 주어졌을 때, 하나를 회전하여 다른 문자열을 만들 수 있는지 확인합니다.핵심 개념: Naive 문자열 비교.415. Add Strings (Easy)설명: 두 문자열로 표현된 숫자를 더한 결과를 반환합니다.핵심 개념: Naive 문자열 처리, 수학.242. Valid Anagram (Easy)설명: 두 문자열이 애너그램인지 확인합니다..

문자열 심화: Trie 트라이 문제 (19)

가장 긴 접두어 찾기 관련 문제14. Longest Common Prefix (Easy)설명: 문자열 배열에서 가장 긴 공통 접두사를 찾습니다.핵심 개념: 문자열 비교, 정렬.648. Replace Words (Medium)설명: 문장의 단어를 사전에 있는 가장 짧은 접두사로 대체합니다.핵심 개념: Trie, 문자열 처리.745. Prefix and Suffix Search (Hard)설명: 특정 접두사와 접미사로 시작/끝나는 단어를 찾습니다.핵심 개념: Trie, 해시맵.28. Find the Index of the First Occurrence in a String (strStr) (Easy)설명: 특정 패턴 문자열의 시작 인덱스를 반환합니다.핵심 개념: KMP 알고리즘, 문자열 비교.214. Sho..