자바9 [백준] BOJ1922 네트워크 연결 - MST(최소신장트리) - 크루스칼 알고리즘 MST (Minimum Spanning Tree) - Kruskal 알고리즘 MST 란 모든 노드를 최소 비용으로 연결하는 알고리즘인데, 아래의 조건을 만족해야 한다. 1) 싸이클이 없어야 하고 2) 모든 노드가 연결되어야 한다. 이 때, a 노드에서 b 노드로 연결되어 있고, b 노드에서 c 노드로 연결되어 있다면, a 노드에서 c 노드로 연결되어 있다고 할 수 있다. Kruskal 알고리즘- 준비 // 간선을 가중치 기준으로 오름차순 정렬한다. // 모든 점을 하나의 트리로 설정한다. (Union & Find 기법 사용) - 시작 // 가중치가 작은 간선부터 하나씩 본다. // 해당 간선을 그래프에 추가할 때 싸이클이 생기지 않는다면 해당 간선을 그래프에 추가한다. 백준 BOJ1922 문제를 풀기 위.. 2018. 9. 16. [백준] BOJ1766 - 문제집 문제 출처 https://www.acmicpc.net/problem/1766 해당 문제는 위상정렬을 이용하여 풀 수 있는 문제. 문제간에는 우선순위가 있어서 먼저 푸는것이 좋은 문제의 경우 먼저 풀어야(방문) 한다. 단, 풀 수 있는 문제가 여러개인 경우 (indegree가 0 인 문제가 여러개인 경우) 문제 번호가 낮은 것이 더 쉬운 문제이므로 먼저 풀어야(방문) 한다. // 위상정렬 4 // Priority Queue 사용 import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Comparator; imp.. 2018. 9. 9. [백준] BOJ1516 - 게임 개발 위상정렬을 이용해 풀 수 있는 문제 건물을 짓기 위해 다른 건물을 먼저 지어야 하는 경우가 있다고 했기 때문에,가장 처음에 지을 수 있는 건물(indegree가 0인 건물) 부터 지을 수 있다. 그래서, 위상정렬을 이용하면 쉽게 풀리는 문제 import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer; public class Main { public static void main(String[] args.. 2018. 9. 9. [백준] BOJ2252 - 줄 세우기 위상정렬 알고리즘을 이용하여 풀 수 있는 간단한 문제 import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception{//System.setIn(new FileInputStream("src/input.txt"));BufferedReader br = new BufferedR.. 2018. 9. 9. 이전 1 2 3 다음