- Problem 1: Minimum Spanning Tree
설명: 주어진 그래프에서 최소 신장 트리를 찾습니다.
핵심 개념: 그래프, 최소 신장 트리, 크루스칼 알고리즘, 유니온 파인드.
링크: LeetCode 1000 - Problem 2: Minimum Cost to Hire K Workers
설명: K명의 노동자를 고용하는 최소 비용을 계산합니다.
핵심 개념: 그리디 알고리즘, 우선순위 큐.
링크: LeetCode 857 - Problem 3: Minimum Cost to Merge Stones
설명: 주어진 돌들을 하나로 합치는 최소 비용을 계산합니다.
핵심 개념: 동적 계획법, 누적 합.
링크: LeetCode 1000 - Problem 4: Minimum Cost to Make at Least One Valid Path in a Grid
설명: 2D 그리드에서 최소 비용으로 유효한 경로를 만드는 방법을 찾습니다.
핵심 개념: 그래프, 다익스트라 알고리즘.
링크: LeetCode 1368 - Problem 5: Minimum Number of Days to Disconnect Island
설명: 섬을 분리하는 데 필요한 최소 일수를 계산합니다.
핵심 개념: 그래프, 깊이 우선 탐색.
링크: LeetCode 1568 - Problem 6: Minimum Number of Flips to Convert Binary Matrix to Zero Matrix
설명: 이진 행렬을 모두 0으로 만드는 데 필요한 최소 변환 횟수를 계산합니다.
핵심 개념: 비트마스킹, 너비 우선 탐색.
링크: [LeetCode 1284](https://leetcode.com/problems/minimum-number-of-flips-to-convert-binary-m - Problem 7: Accounts Merge
설명: 같은 이메일 계정을 가진 사용자들의 계정을 병합합니다.
핵심 개념: 그래프, 유니온 파인드.
링크: LeetCode 721 - Problem 8: Smallest String With Swaps
설명: 주어진 스왑으로 사전순으로 가장 작은 문자열을 생성합니다.
핵심 개념: 유니온 파인드.
링크: LeetCode 1202 - Problem 9: Critical Connections in a Network
설명: 네트워크에서 제거 시 전체 연결을 끊는 중요한 연결을 찾습니다.
핵심 개념: 그래프, 타잔 알고리즘.
링크: LeetCode 1192 - Problem 10: Reconstruct Itinerary
설명: 주어진 항공편 데이터를 기반으로 여행 경로를 재구성합니다.
핵심 개념: 그래프, Eulerian Path.
링크: LeetCode 332 - Problem 11: Minimum Height Trees
설명: 루트에서 가장 짧은 높이를 가지는 트리의 루트를 찾습니다.
핵심 개념: 그래프, 트리의 중심.
링크: LeetCode 310 - Problem 12: Longest Increasing Path in a Matrix
설명: 2D 그리드에서 가장 긴 증가 경로를 찾습니다.
핵심 개념: 그래프, 동적 계획법.
링크: LeetCode 329 - Problem 13: Shortest Path Visiting All Nodes
설명: 모든 노드를 방문하는 데 필요한 최단 경로를 찾습니다.
핵심 개념: 그래프, BFS, 비트마스킹.
링크: LeetCode 847 - Problem 14: Cheapest Flights Within K Stops
설명: 주어진 K개의 중간 경유를 포함해 최저 비용으로 도착지에 도달합니다.
핵심 개념: 그래프, 다익스트라 알고리즘.
링크: LeetCode 787 - Problem 15: Parallel Courses
설명: 모든 코스를 완료하는 데 필요한 최소 학기를 계산합니다.
핵심 개념: 위상 정렬, 그래프.
링크: LeetCode 1136 - Problem 16: Find Eventual Safe States
설명: 안전한 상태로 이동하는 모든 노드를 찾습니다.
핵심 개념: 그래프, 위상 정렬.
링크: LeetCode 802 - Problem 17: Maximum Number of Edges to Remove
설명: 그래프를 모두 연결하면서 제거할 수 있는 최대 간선 수를 계산합니다.
핵심 개념: 그래프, 유니온 파인드.
링크: LeetCode 1579 - Problem 18: Check if a Graph is Tree
설명: 주어진 그래프가 트리인지 확인합니다.
핵심 개념: 그래프, 유니온 파인드, DFS.
링크: LeetCode 261 - Problem 19: Keys and Rooms
설명: 각 방의 열쇠를 사용해 모든 방을 열 수 있는지 확인합니다.
핵심 개념: 그래프, DFS, BFS.
링크: LeetCode 841 - Problem 20: Maximum Network Rank
설명: 도시 간 네트워크에서 최대 연결 랭크를 계산합니다.
핵심 개념: 그래프, 배열.
링크: LeetCode 1615 - Problem 21: Evaluate Division
설명: 나눗셈 관계로 주어진 쿼리의 값을 계산합니다.
핵심 개념: 그래프, DFS, BFS.
링크: LeetCode 399 - Problem 22: Minimum Path Cost in a Grid
설명: 2D 격자에서 최소 경로 비용을 계산합니다.
핵심 개념: 그래프, 다익스트라 알고리즘.
링크: LeetCode 2304 - Problem 23: Similar String Groups
설명: 주어진 문자열 그룹을 유사 그룹으로 분류합니다.
핵심 개념: 유니온 파인드.
링크: LeetCode 839 - Problem 24: Most Stones Removed with Same Row or Column
설명: 같은 행이나 열에서 돌을 제거하여 남길 수 있는 최대 돌 개수를 계산합니다.
핵심 개념: 그래프, 유니온 파인드.
링크: LeetCode 947 - Problem 25: Redundant Connections
설명: 트리에 추가된 간선을 찾아 제거합니다.
핵심 개념: 유니온 파인드.
링크: LeetCode 684
'Coding Test > 알고리즘 이론' 카테고리의 다른 글
| 최대 유량 관련 10 문제 (Maximum Flow) + 플로우 네트워크 20 문제 (0) | 2025.01.05 |
|---|---|
| 경로, 최소거리, 그래프 탐색 등(총 40문제) (0) | 2025.01.05 |
| 최소신장트리-easy (25문제) (1) | 2025.01.04 |
| "최소 비용 신장 트리(Minimum Spanning Tree: MST)"를 찾는 방법 (0) | 2025.01.04 |
| 탐욕 - Greedy 알고리즘 - leet code 35문제(20+15) (3) | 2025.01.03 |