목록최소 스패닝 트리 (3)
기록방
👉 문제링크🔸 문제 분석 🔸N개의 컴퓨터 사이 M개의 네트워크가 있다.모든 컴퓨터를 연결할 수 있는 네트워크 최소 비용을 구한다.🔸 문제 풀이 🔸전형적인 MST 문제이다. 모든 노드를 한 번씩은 연결하며 최소 비용이 되도록 하기 때문이다.여기서는 크루스칼(Kruskal) 알고리즘을 사용했다.🔸 코드 🔸import java.io.*;import java.util.PriorityQueue;import java.util.StringTokenizer;public class Main { private static int[] parent; public static void main(String[] args) throws IOException { // Input Buf..
👉 문제링크 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 www.acmicpc.net 🔸 문제 분석 🔸 N개의 집과 M개의 집 사이를 연결하는 길이 있다. 서로 이어지지 않는 마을 2개를 만드려고 하는데, 각 마을 안에서는 집끼리 길이 연결되어 있어야 한다. 길의 유지비 합의 최소값을 출력한다. 🔸 문제 풀이 🔸 마을 안에서 집 사이에 길이 연결되어 있어야 하고, 그 가중치가 최소가 되어야 하므로, 두 개의 최소 신장 트리(MST) 가 만들어져야 한다. 여기서는 크루스칼(Kruskal) 알고리즘을..
👉 문제링크 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 🔸 문제 분석 🔸 최소 신장 트리(MST, Minimum Spanning Tree)를 구현하는 문제이다. 크루스칼(Kruskal)과 프림(Prim) 알고리즘이 있는데, 여기서는 크루스칼을 사용했다. 🔸 문제 풀이 🔸 크루스칼 알고리즘의 기본 형태를 구현한다. 간선을 가중치 기준으로 오름차순 정렬하기 위해 우선순위 큐를 사용했다. 사이클 방지를 위해 같은 집합에 포함되어있는지 확인이 필요하므로 Union-..