- Stable Matching Problem
설명: 두 집단 간에 안정적인 매칭을 찾는 문제입니다.
핵심 개념: 게일-섀플리 알고리즘, 그래프 이론. - Gale-Shapley Algorithm
설명: 모든 참여자가 만족하는 안정적인 결혼 매칭을 계산합니다.
핵심 개념: 매칭 알고리즘.
LeetCode Easy
- Two Sum (LeetCode 1)
설명: 주어진 배열에서 두 수의 합이 목표값이 되는 인덱스를 찾습니다.
핵심 개념: 해시맵, 완전 탐색. - Valid Parentheses (LeetCode 20)
설명: 괄호가 유효한 조합인지 확인합니다.
핵심 개념: 스택. - Merge Two Sorted Lists (LeetCode 21)
설명: 두 개의 정렬된 연결 리스트를 병합합니다.
핵심 개념: 연결 리스트, 재귀. - Best Time to Buy and Sell Stock (LeetCode 121)
설명: 주식의 최대 이익을 계산합니다.
핵심 개념: DP, 슬라이딩 윈도우. - Maximum Subarray (LeetCode 53)
설명: 배열에서 연속된 부분 배열의 최대 합을 구합니다.
핵심 개념: 카데인 알고리즘, DP. - Invert Binary Tree (LeetCode 226)
설명: 이진 트리를 반전합니다.
핵심 개념: BFS, DFS. - Majority Element (LeetCode 169)
설명: 배열에서 과반수 이상 등장한 요소를 찾습니다.
핵심 개념: 해시맵, 분할 정복. - Contains Duplicate (LeetCode 217)
설명: 배열에 중복된 값이 있는지 확인합니다.
핵심 개념: 해시셋. - Binary Tree Inorder Traversal (LeetCode 94)
설명: 이진 트리의 중위 순회를 구현합니다.
핵심 개념: DFS, 재귀. - Climbing Stairs (LeetCode 70)
설명: 계단을 오를 수 있는 방법의 수를 계산합니다.
핵심 개념: DP, 피보나치 수열. - Lowest Common Ancestor of a Binary Search Tree (LeetCode 235)
설명: 이진 검색 트리에서 두 노드의 가장 가까운 공통 조상을 찾습니다.
핵심 개념: 이진 검색 트리, DFS. - Symmetric Tree (LeetCode 101)
설명: 이진 트리가 대칭인지 확인합니다.
핵심 개념: BFS, 재귀. - Path Sum (LeetCode 112)
설명: 루트에서 리프까지의 경로 중 특정 합을 가지는 경로가 있는지 확인합니다.
핵심 개념: DFS, 재귀. - Intersection of Two Arrays II (LeetCode 350)
설명: 두 배열의 교집합을 찾습니다(중복 포함).
핵심 개념: 해시맵, 투 포인터. - Find All Numbers Disappeared in an Array (LeetCode 448)
설명: 1부터 n까지의 숫자 중 배열에서 누락된 숫자를 찾습니다.
핵심 개념: 인덱스 조작. - First Bad Version (LeetCode 278)
설명: 첫 번째로 잘못된 버전을 찾습니다.
핵심 개념: 이진 탐색. - Middle of the Linked List (LeetCode 876)
설명: 연결 리스트의 중간 노드를 반환합니다.
핵심 개념: 투 포인터. - Merge Sorted Array (LeetCode 88)
설명: 두 개의 정렬된 배열을 병합합니다.
핵심 개념: 투 포인터. - Binary Search (LeetCode 704)
설명: 주어진 배열에서 타겟 요소를 찾습니다.
핵심 개념: 이진 탐색. - Roman to Integer (LeetCode 13)
설명: 로마 숫자를 정수로 변환합니다.
핵심 개념: 문자열 처리, 해시맵.
LeetCode Medium
- 3Sum (LeetCode 15)
설명: 배열에서 세 수의 합이 0이 되는 모든 조합을 찾습니다.
핵심 개념: 투 포인터, 정렬. - Add Two Numbers (LeetCode 2)
설명: 두 개의 연결 리스트를 더합니다.
핵심 개념: 연결 리스트, 수학. - Group Anagrams (LeetCode 49)
설명: 애너그램 단어들을 그룹으로 묶습니다.
핵심 개념: 해시맵, 문자열. - Longest Palindromic Substring (LeetCode 5)
설명: 주어진 문자열에서 가장 긴 팰린드롬 부분 문자열을 찾습니다.
핵심 개념: DP, 중심 확장법. - Kth Largest Element in an Array (LeetCode 215)
설명: 배열에서 k번째로 큰 요소를 찾습니다.
핵심 개념: 힙, 퀵 셀렉트. - Word Search (LeetCode 79)
설명: 격자에서 단어가 존재하는지 확인합니다.
핵심 개념: 백트래킹, DFS. - Coin Change (LeetCode 322)
설명: 최소 동전의 개수로 주어진 금액을 구성합니다.
핵심 개념: DP. - Course Schedule (LeetCode 207)
설명: 주어진 과목들이 완료 가능한지 확인합니다.
핵심 개념: 위상 정렬, DFS, 그래프. - Number of Islands (LeetCode 200)
설명: 2D 격자에서 섬의 개수를 계산합니다.
핵심 개념: BFS, DFS. - Longest Increasing Subsequence (LeetCode 300)
설명: 배열에서 가장 긴 증가 부분 수열의 길이를 찾습니다.
핵심 개념: DP, 이진 탐색. - Rotting Oranges (LeetCode 994)
설명: 썩은 오렌지가 모두 영향을 미치는 데 걸리는 시간을 계산합니다.
핵심 개념: BFS, 그래프. - Letter Combinations of a Phone Number (LeetCode 17)
설명: 전화번호 키패드의 숫자로 가능한 문자 조합을 찾습니다.
핵심 개념: 백트래킹. - Binary Tree Zigzag Level Order Traversal (LeetCode 103)
설명: 이진 트리를 지그재그 방식으로 레벨 순회를 수행합니다.
핵심 개념: BFS. - Combination Sum (LeetCode 39)
설명: 주어진 숫자로 가능한 모든 조합의 합을 계산합니다.
핵심 개념: 백트래킹. - Permutations (LeetCode 46)
설명: 배열의 모든 순열을 계산합니다.
핵심 개념: DFS, 백트래킹. - Subsets (LeetCode 78)
설명: 배열의 모든 부분 집합을 계산합니다.
핵심 개념: 백트래킹. - Search in Rotated Sorted Array (LeetCode 33)
설명: 회전된 정렬 배열에서 타겟 요소를 찾습니다.
핵심 개념: 이진 탐색. - Unique Paths (LeetCode 62)
설명: 격자의 시작점에서 끝점까지 이동하는 고유한 경로의 수를 계산합니다.
핵심 개념: DP, 조합론. - Find Minimum in Rotated Sorted Array (LeetCode 153)
설명: 회전된 정렬 배열에서 최소값을 찾습니다.
핵심 개념: 이진 탐색. - Linked List Cycle (LeetCode 141)
설명: 연결 리스트에 사이클이 있는지 확인합니다.
핵심 개념: 투 포인터.
'Coding Test > 알고리즘 이론' 카테고리의 다른 글
경로문제 || (25) (0) | 2025.01.06 |
---|---|
경로 문제 | (38) (0) | 2025.01.06 |
Bipartite Graph 이분 그래프 문제 20+20 (1) | 2025.01.05 |
짝짓기 문제(Pairing) 20+20 (0) | 2025.01.05 |
최대 유량 관련 10 문제 (Maximum Flow) + 플로우 네트워크 20 문제 (0) | 2025.01.05 |