Coding Test/알고리즘 이론

짝짓기 문제(Pairing) 20+20

hyunkookim 2025. 1. 5. 15:43

Easy 난이도 (짝짓기 문제)

Problem 1: Is Graph Bipartite? (LeetCode 785)
설명: 주어진 그래프가 이분 그래프인지 확인합니다.
핵심 개념: BFS, DFS, 이분 그래프.

Problem 2: Maximum Bipartite Matching (GeeksForGeeks)
설명: 이분 그래프에서 최대 매칭을 찾습니다.
핵심 개념: 플로우 네트워크, 이분 그래프 매칭.

Problem 3: Assign Cookies (LeetCode 455)
설명: 아이들에게 쿠키를 배정해 최대 만족도를 계산합니다.
핵심 개념: 매칭 문제, 그리디 알고리즘.

Problem 4: Two Sum (LeetCode 1)
설명: 두 숫자를 짝지어 목표 합을 찾습니다.
핵심 개념: 매칭 문제, 해시맵.

Problem 5: Two City Scheduling (LeetCode 1029)
설명: 사람들을 두 도시로 배정하는 최소 비용을 계산합니다.
핵심 개념: 그리디 알고리즘, 매칭.

Problem 6: Distribute Candies (LeetCode 575)
설명: 사탕을 균등하게 배정합니다.
핵심 개념: 매칭, 그리디.

Problem 7: Task Scheduler (LeetCode 621)
설명: 작업 간의 간격을 고려해 최소 시간을 계산합니다.
핵심 개념: 매칭 문제, 우선순위 큐.

Problem 8: Count the Number of Consistent Strings (LeetCode 1684)
설명: 문자열을 특정 조건에 따라 매칭합니다.
핵심 개념: 매칭, 문자열.

Problem 9: Count Pairs of Nodes (LeetCode 1782)
설명: 노드 쌍의 개수를 계산합니다.
핵심 개념: 그래프 매칭.

Problem 10: K Closest Points to Origin (LeetCode 973)
설명: 원점에서 가장 가까운 점들로 매칭합니다.
핵심 개념: 매칭, 우선순위 큐.

Problem 11: Fair Candy Swap (LeetCode 888)
설명: 두 사람이 사탕을 교환하여 공평하게 만드는 문제입니다.
핵심 개념: 배열, 매칭.

Problem 12: Binary Tree Tilt (LeetCode 563)
설명: 이진 트리의 기울기를 계산합니다.
핵심 개념: DFS, 트리 매칭.

Problem 13: Intersection of Two Linked Lists (LeetCode 160)
설명: 두 링크드 리스트의 교차 지점을 찾습니다.
핵심 개념: 해시맵, 매칭.

Problem 14: Sum of All Odd Length Subarrays (LeetCode 1588)
설명: 모든 홀수 길이 부분 배열의 합을 계산합니다.
핵심 개념: 배열, 매칭.

Problem 15: Intersection of Two Arrays II (LeetCode 350)
설명: 두 배열의 교차 항목을 찾습니다.
핵심 개념: 해시맵, 매칭.

Problem 16: Degree of an Array (LeetCode 697)
설명: 배열의 가장 짧은 하위 배열을 찾습니다.
핵심 개념: 배열, 매칭.

Problem 17: Middle of the Linked List (LeetCode 876)
설명: 링크드 리스트의 중간 노드를 반환합니다.
핵심 개념: 매칭, 포인터.

Problem 18: Palindrome Linked List (LeetCode 234)
설명: 링크드 리스트가 회문인지 확인합니다.
핵심 개념: 매칭, 투 포인터.

Problem 19: Sum of Left Leaves (LeetCode 404)
설명: 이진 트리의 왼쪽 리프 노드의 합을 구합니다.
핵심 개념: DFS, 트리 매칭.

Problem 20: Pairs of Songs With Total Durations Divisible by 60 (LeetCode 1010)
설명: 두 곡의 길이를 더해 60으로 나누어떨어지는 쌍을 찾습니다.
핵심 개념: 매칭, 해시맵.


Medium 난이도 (짝짓기 문제)

Problem 1: Maximum Bipartite Matching (GeeksForGeeks)
설명: 이분 그래프에서 최대 매칭을 찾습니다.
핵심 개념: 플로우 네트워크, 이분 그래프 매칭.

Problem 2: Maximum Number of Accepted Invitations (LeetCode 1820)
설명: 사람과 테이블 간의 매칭을 최적화합니다.
핵심 개념: 이분 그래프 매칭, 플로우 네트워크.

Problem 3: Course Schedule II (LeetCode 210)
설명: 수강 순서를 결정하기 위해 매칭합니다.
핵심 개념: 위상 정렬, 그래프 매칭.

Problem 4: Cheapest Flights Within K Stops (LeetCode 787)
설명: 항공편을 매칭하여 최소 비용을 계산합니다.
핵심 개념: BFS, 매칭.

Problem 5: Pacific Atlantic Water Flow (LeetCode 417)
설명: 물이 두 바다로 흐르는 경로를 매칭합니다.
핵심 개념: BFS, DFS.

Problem 6: Critical Connections in a Network (LeetCode 1192)
설명: 연결 간선을 매칭하여 최적의 네트워크를 구성합니다.
핵심 개념: DFS, 그래프 탐색.

Problem 7: The Maze III (LeetCode 499)
설명: 미로의 경로를 매칭하여 최적의 이동을 계산합니다.
핵심 개념: BFS, 그래프 매칭.

Problem 8: Accounts Merge (LeetCode 721)
설명: 계정 간의 연결을 매칭하여 병합합니다.
핵심 개념: 그래프 탐색, 매칭.

Problem 9: Reconstruct Itinerary (LeetCode 332)
설명: 항공권 경로를 매칭하여 일정을 구성합니다.
핵심 개념: DFS, 그래프 매칭.

Problem 10: Min Cost to Connect All Points (LeetCode 1584)
설명: 모든 점을 연결하는 최소 비용을 계산합니다.
핵심 개념: 크루스칼 알고리즘, 매칭.

Problem 11: Stable Marriage Problem (GeeksForGeeks)
설명: 남성과 여성 간의 안정적인 매칭을 찾습니다.
핵심 개념: 게일-셰플리 알고리즘, 매칭.

Problem 12: Hospital Residents Problem (GeeksForGeeks)
설명: 병원과 의사 간의 안정적인 매칭을 찾습니다.
핵심 개념: 안정적인 매칭, 이분 그래프.

Problem 13: Bipartite Graph Check (GeeksForGeeks)
설명: 주어진 그래프가 이분 그래프인지 확인합니다.
핵심 개념: BFS, DFS, 이분 그래프.

Problem 14: Perfect Matching in a Graph (Codeforces)
설명: 그래프에서 완벽한 매칭을 찾습니다.
핵심 개념: 플로우 네트워크, 이분 그래프 매칭.

Problem 15: Job Assignment Problem (GeeksForGeeks)
설명: 작업자와 작업 간의 최적 매칭을 찾습니다.
핵심 개념: 매칭, 최소 비용 네트워크.

Problem 16: Project Assignment Problem (GeeksForGeeks)
설명: 프로젝트와 작업자를 매칭하는 문제입니다.
핵심 개념: 최대 유량, 매칭.

Problem 17: Min Cost to Connect All Points (LeetCode 1584)
설명: 모든 점을 연결하는 최소 비용을 계산합니다.
핵심 개념: 크루스칼 알고리즘, 매칭.

Problem 18: Maximum Number of Accepted Invitations (LeetCode 1820)
설명: 사람과 테이블 간 매칭을 최적화합니다.
핵심 개념: 이분 그래프 매칭, 최대 유량.

Problem 19: Reconstruct Itinerary (LeetCode 332)
설명: 항공권 경로를 매칭하여 일정을 재구성합니다.
핵심 개념: DFS, 그래프 매칭.

Problem 20: K Similar Strings (LeetCode 854)
설명: 두 문자열을 동일하게 만들기 위한 최소 변환 횟수를 계산합니다.
핵심 개념: BFS, 매칭.