MST [Data Structure & Algorithm] 최소 신장 트리 & 크루스칼 알고리즘 (shortest path) 신장 트리(Spanning Tree): Tree 자료구조 중 하나입니다 하나의 graph가 있을때 모든 node를 포함하면서 cycle이 존재하지 않는, 부분 graph를 뜻 합니다 최소 신장 트리(Minimum Spanning Tree, MST): 하나의 graph에서 여러개의 신장 트리가 나올 수 있는데, 이 중 최소한의 비용의 트리를 최소 신장 트리라 합니다 MST 를 찾는 알고리즘으로... Spanning Treealgorithmdata structurepythonMinimum Spanning TreeMST이코테MST [알고리즘] Java / 백준 / 도시 분할 계획 / 1647 [알고리즘] Java / 백준 / 도시 분할 계획 / 1647 문제 접근 방식 최소 스패닝 트리를 구하면서 트리를 구성하는 간선 비용의 합을 구한 후 여기에 간선의 최댓값을 빼면 두 마을을 분리하는 길의 유지비 최솟값을 구할 수 있다. 최소 스패닝 트리를 구하는 방법은 kruskal과 prim이 있는데 kruskal은 익숙해서 prim으로 구현하였다. 코드... MSTprimbaekjoonJavaJava mst 최소스패닝트리 최소신장트리는 '그래프에서 모든 정점을 연결하는 간선들의 가중치의 합이 최소가 되는 트리'를 뜻한다. 한마디로 모든 정점을 연결하는데 간선의 cost가 최소가 될 때를 찾는 알고리즘이다. mst가 사용되는 경우 모든 정점을 연결하는 간선들의 가중치의 합이 최소가 되는 트리 mst 무향 가중치 그래프에서 신장 트리를 구성하는 간선들의 가중치의 합이 최소인 신장 트리 MST 표현 MST 알고리즘... 프림크루스칼MST알고리즘최소스패닝트리MST [알고리즘] 최소 신장 트리(MST) 신장트리(Spanning Tree)? 최소신장트리 - MST? MST 알고리즘 그래프 내의 모든 정점을 포함하는 트리 = 그래프의 최소 연결 부분 트리! = 그래프에서 일부 간선을 선택해서 만든 트리 => 그렇기 때문에 간선 수가 가장 적다 : n-1개 꼭 지켜져야 할 것 : 모든 정점들이 연결, 싸이클을 포함하면 안된다 DFS, BFS를 이용해 신장트리 찾기 가능 신장트리 Minimum S... 프림prim크루스칼greedyMST알고리즘kruskal최소신장트리MST 백준 알고리즘 7044번 : Bad Cowtractors Bessie has been hired to build a cheap internet network among Farmer John's N (2 <= N <= 1,000) barns that are conveniently numbered 1..N. FJ has already done some surveying, and found M (1 <= M <= 20,000) possible conne... 백준 알고리즘크루스칼MSTMST 백준 알고리즘 1922번 : 네트워크 연결 도현이는 컴퓨터와 컴퓨터를 모두 연결하는 네트워크를 구축하려 한다. 하지만 아쉽게도 허브가 있지 않아 컴퓨터와 컴퓨터를 직접 연결하여야 한다. 그런데 모두가 자료를 공유하기 위해서는 모든 컴퓨터가 연결이 되어 있어야 한다. (a와 b가 연결이 되어 있다는 말은 a에서 b로의 경로가 존재한다는 것을 의미한다. a에서 b를 연결하는 선이 있고, b와 c를 연결하는 선이 있으면 a와 c는 연결이 ... 백준 알고리즘크루스칼MSTMST 백준 알고리즘 14621번 : 나만 안되는 연애 깽미는 대마법사가 될 순 없다며 자신의 프로그래밍 능력을 이용하여 미팅 어플리케이션을 만들기로 결심했다. 미팅 앱은 대학생을 타겟으로 만들어졌으며 대학교간의 도로 데이터를 수집하여 만들었다. 이 앱은 사용자들을 위해 사심 경로를 제공한다. 이 경로는 3가지 특징을 가지고 있다. 1. 사심 경로는 사용자들의 사심을 만족시키기 위해 남초 대학교와 여초 대학교들을 연결하는 도로로만 이루어져 있다.... 백준 알고리즘크루스칼MSTMST 백준 알고리즘 10423번 : 전기가 부족해 살기 좋은 나라 1등으로 꼽힌 이후 외국인 방문객들이 많아졌고, 그에 따라 전기 소비율이 증가하여 전기가 많이 부족한 상황이 되었다. 발전소는 이미 특정 도시에 건설되어 있고, 따라서 추가적으로 드는 비용은 케이블을 설치할 때 드는 비용이 전부이다. 이 프로젝트의 문제는 케이블을 설치할 때 드는 비용이 굉장히 크므로 이를 최소화해서 설치하여 모든 도시에 전기를 공급하는 것이다. 여러분은 N개... 백준 알고리즘크루스칼MSTMST [BaekJoon] 1774 우주신과의 교감 (Java) 크루스칼 알고리즘의 이론과 코드를 짜보는 공부를 했었으나 실제로 문제에 적용하는 것은 처음이라 그런지 문제를 푸는데 많은 시간이 걸렸다. MST 문제는 크게 크루스칼이나 프림 알고리즘을 사용해서 풀어야한다. 두개의 알고리즘을 모두 막힘없이 작성할 수 있으면 좋으나 현재로서는 일단 하나라도 확실하게 작성할 수 있도록 키워야할것 같다. 크루스칼을 확실히 마스터 해야겠다~~🎃... Kruskal's Algorithm알고리즘 문제풀이MSTbaekjoonKruskal's Algorithm [BOJ] 4386 : 별자리 만들기 🧺입력 첫째 줄에 별의 개수 n이 주어진다. (1 ≤ n ≤ 100) 둘째 줄부터 n개의 줄에 걸쳐 각 별의 x, y좌표가 실수 형태로 주어지며, 최대 소수점 둘째자리까지 주어진다. 좌표는 1000을 넘지 않는 양의 실수이다. 🧺출력 첫째 줄에 정답을 출력한다. 절대/상대 오차는 10-2까지 허용한다. 🔮예제 입력 🔮예제 출력 최소 스패닝 트리, 피타고라스의 정리 골드IV 이 문제는 피타고라... MSTboj알고리즘CC [백준]#2887 행성 터널 때는 2040년, 이민혁은 우주에 자신만의 왕국을 만들었다. 왕국은 N개의 행성으로 이루어져 있다. 민혁이는 이 행성을 효율적으로 지배하기 위해서 행성을 연결하는 터널을 만들려고 한다. 행성은 3차원 좌표위의 한 점으로 생각하면 된다. 두 행성 A(xA, yA, zA)와 B(xB, yB, zB)를 터널로 연결할 때 드는 비용은 min(|xA-xB|, |yA-yB|, |zA-zB|)이다. 민혁... 백준kruskalalgorithmMSTMST MST 최소 신장 트리 그래프상에 존재하는 모든 노드들을 최소비용 으로 연결시키는 알고리즘 특징 무방향성 신장트리 1. 그래프의 부분집합인 트리 2. 모든 정점을 포함 3. 싸이클 X 원래 3중 for문으로도 해결해야하는 것을 크루스칼은 ‘정렬’ 후 작은 것부터 추가 프림은 ‘갱신' 방법을 사용함으로써 더 효율적으로 해결할 수 있음 간선이 많으면 프림(노드를 가지고 함) 논리 선택된 그룹 vs 선택 안 된 그룹 (... 프림코딩테스트Java최소신장트리MST크루스칼psJava 백준 1647번: 도시 분할 계획 트리가 만들어지면 간선이 총 N-1개이다. MST를 만들다 간선의 개수가 N-2가 되었을 때 멈춘다면 도시가 최소의 비용으로 분할된다. 즐거운 MST... psMSTcppMST [백준/C++] 2887번. 행성 터널 때는 2040년, 이민혁은 우주에 자신만의 왕국을 만들었다. 왕국은 N개의 행성으로 이루어져 있다. 민혁이는 이 행성을 효율적으로 지배하기 위해서 행성을 연결하는 터널을 만들려고 한다. 행성은 3차원 좌표위의 한 점으로 생각하면 된다. 두 행성 A(xA, yA, zA)와 B(xB, yB, zB)를 터널로 연결할 때 드는 비용은 min(|xA-xB|, |yA-yB|, |zA-zB|)이다. 민혁... 백준psbojcpp그래프MST최소 신장 트리MST [백준/C++] 6497번. 전력난 길의 가로등을 켜 두면 하루에 길의 미터 수만큼 돈이 들어가는데, 일부를 소등하여 그만큼의 돈을 절약할 수 있다. 그러나 만약 어떤 두 집을 왕래할 때, 불이 켜져 있지 않은 길을 반드시 지나야 한다면 위험하다. 그래서 도시에 있는 모든 두 집 쌍에 대해, 불이 켜진 길만으로 서로를 왕래할 수 있어야 한다. 위 조건을 지키면서 절약할 수 있는 최대 액수를 구하시오. 각 테스트 케이스의 첫째 ... 백준psboj최소 신장 트리cppMST분리 집합MST
[Data Structure & Algorithm] 최소 신장 트리 & 크루스칼 알고리즘 (shortest path) 신장 트리(Spanning Tree): Tree 자료구조 중 하나입니다 하나의 graph가 있을때 모든 node를 포함하면서 cycle이 존재하지 않는, 부분 graph를 뜻 합니다 최소 신장 트리(Minimum Spanning Tree, MST): 하나의 graph에서 여러개의 신장 트리가 나올 수 있는데, 이 중 최소한의 비용의 트리를 최소 신장 트리라 합니다 MST 를 찾는 알고리즘으로... Spanning Treealgorithmdata structurepythonMinimum Spanning TreeMST이코테MST [알고리즘] Java / 백준 / 도시 분할 계획 / 1647 [알고리즘] Java / 백준 / 도시 분할 계획 / 1647 문제 접근 방식 최소 스패닝 트리를 구하면서 트리를 구성하는 간선 비용의 합을 구한 후 여기에 간선의 최댓값을 빼면 두 마을을 분리하는 길의 유지비 최솟값을 구할 수 있다. 최소 스패닝 트리를 구하는 방법은 kruskal과 prim이 있는데 kruskal은 익숙해서 prim으로 구현하였다. 코드... MSTprimbaekjoonJavaJava mst 최소스패닝트리 최소신장트리는 '그래프에서 모든 정점을 연결하는 간선들의 가중치의 합이 최소가 되는 트리'를 뜻한다. 한마디로 모든 정점을 연결하는데 간선의 cost가 최소가 될 때를 찾는 알고리즘이다. mst가 사용되는 경우 모든 정점을 연결하는 간선들의 가중치의 합이 최소가 되는 트리 mst 무향 가중치 그래프에서 신장 트리를 구성하는 간선들의 가중치의 합이 최소인 신장 트리 MST 표현 MST 알고리즘... 프림크루스칼MST알고리즘최소스패닝트리MST [알고리즘] 최소 신장 트리(MST) 신장트리(Spanning Tree)? 최소신장트리 - MST? MST 알고리즘 그래프 내의 모든 정점을 포함하는 트리 = 그래프의 최소 연결 부분 트리! = 그래프에서 일부 간선을 선택해서 만든 트리 => 그렇기 때문에 간선 수가 가장 적다 : n-1개 꼭 지켜져야 할 것 : 모든 정점들이 연결, 싸이클을 포함하면 안된다 DFS, BFS를 이용해 신장트리 찾기 가능 신장트리 Minimum S... 프림prim크루스칼greedyMST알고리즘kruskal최소신장트리MST 백준 알고리즘 7044번 : Bad Cowtractors Bessie has been hired to build a cheap internet network among Farmer John's N (2 <= N <= 1,000) barns that are conveniently numbered 1..N. FJ has already done some surveying, and found M (1 <= M <= 20,000) possible conne... 백준 알고리즘크루스칼MSTMST 백준 알고리즘 1922번 : 네트워크 연결 도현이는 컴퓨터와 컴퓨터를 모두 연결하는 네트워크를 구축하려 한다. 하지만 아쉽게도 허브가 있지 않아 컴퓨터와 컴퓨터를 직접 연결하여야 한다. 그런데 모두가 자료를 공유하기 위해서는 모든 컴퓨터가 연결이 되어 있어야 한다. (a와 b가 연결이 되어 있다는 말은 a에서 b로의 경로가 존재한다는 것을 의미한다. a에서 b를 연결하는 선이 있고, b와 c를 연결하는 선이 있으면 a와 c는 연결이 ... 백준 알고리즘크루스칼MSTMST 백준 알고리즘 14621번 : 나만 안되는 연애 깽미는 대마법사가 될 순 없다며 자신의 프로그래밍 능력을 이용하여 미팅 어플리케이션을 만들기로 결심했다. 미팅 앱은 대학생을 타겟으로 만들어졌으며 대학교간의 도로 데이터를 수집하여 만들었다. 이 앱은 사용자들을 위해 사심 경로를 제공한다. 이 경로는 3가지 특징을 가지고 있다. 1. 사심 경로는 사용자들의 사심을 만족시키기 위해 남초 대학교와 여초 대학교들을 연결하는 도로로만 이루어져 있다.... 백준 알고리즘크루스칼MSTMST 백준 알고리즘 10423번 : 전기가 부족해 살기 좋은 나라 1등으로 꼽힌 이후 외국인 방문객들이 많아졌고, 그에 따라 전기 소비율이 증가하여 전기가 많이 부족한 상황이 되었다. 발전소는 이미 특정 도시에 건설되어 있고, 따라서 추가적으로 드는 비용은 케이블을 설치할 때 드는 비용이 전부이다. 이 프로젝트의 문제는 케이블을 설치할 때 드는 비용이 굉장히 크므로 이를 최소화해서 설치하여 모든 도시에 전기를 공급하는 것이다. 여러분은 N개... 백준 알고리즘크루스칼MSTMST [BaekJoon] 1774 우주신과의 교감 (Java) 크루스칼 알고리즘의 이론과 코드를 짜보는 공부를 했었으나 실제로 문제에 적용하는 것은 처음이라 그런지 문제를 푸는데 많은 시간이 걸렸다. MST 문제는 크게 크루스칼이나 프림 알고리즘을 사용해서 풀어야한다. 두개의 알고리즘을 모두 막힘없이 작성할 수 있으면 좋으나 현재로서는 일단 하나라도 확실하게 작성할 수 있도록 키워야할것 같다. 크루스칼을 확실히 마스터 해야겠다~~🎃... Kruskal's Algorithm알고리즘 문제풀이MSTbaekjoonKruskal's Algorithm [BOJ] 4386 : 별자리 만들기 🧺입력 첫째 줄에 별의 개수 n이 주어진다. (1 ≤ n ≤ 100) 둘째 줄부터 n개의 줄에 걸쳐 각 별의 x, y좌표가 실수 형태로 주어지며, 최대 소수점 둘째자리까지 주어진다. 좌표는 1000을 넘지 않는 양의 실수이다. 🧺출력 첫째 줄에 정답을 출력한다. 절대/상대 오차는 10-2까지 허용한다. 🔮예제 입력 🔮예제 출력 최소 스패닝 트리, 피타고라스의 정리 골드IV 이 문제는 피타고라... MSTboj알고리즘CC [백준]#2887 행성 터널 때는 2040년, 이민혁은 우주에 자신만의 왕국을 만들었다. 왕국은 N개의 행성으로 이루어져 있다. 민혁이는 이 행성을 효율적으로 지배하기 위해서 행성을 연결하는 터널을 만들려고 한다. 행성은 3차원 좌표위의 한 점으로 생각하면 된다. 두 행성 A(xA, yA, zA)와 B(xB, yB, zB)를 터널로 연결할 때 드는 비용은 min(|xA-xB|, |yA-yB|, |zA-zB|)이다. 민혁... 백준kruskalalgorithmMSTMST MST 최소 신장 트리 그래프상에 존재하는 모든 노드들을 최소비용 으로 연결시키는 알고리즘 특징 무방향성 신장트리 1. 그래프의 부분집합인 트리 2. 모든 정점을 포함 3. 싸이클 X 원래 3중 for문으로도 해결해야하는 것을 크루스칼은 ‘정렬’ 후 작은 것부터 추가 프림은 ‘갱신' 방법을 사용함으로써 더 효율적으로 해결할 수 있음 간선이 많으면 프림(노드를 가지고 함) 논리 선택된 그룹 vs 선택 안 된 그룹 (... 프림코딩테스트Java최소신장트리MST크루스칼psJava 백준 1647번: 도시 분할 계획 트리가 만들어지면 간선이 총 N-1개이다. MST를 만들다 간선의 개수가 N-2가 되었을 때 멈춘다면 도시가 최소의 비용으로 분할된다. 즐거운 MST... psMSTcppMST [백준/C++] 2887번. 행성 터널 때는 2040년, 이민혁은 우주에 자신만의 왕국을 만들었다. 왕국은 N개의 행성으로 이루어져 있다. 민혁이는 이 행성을 효율적으로 지배하기 위해서 행성을 연결하는 터널을 만들려고 한다. 행성은 3차원 좌표위의 한 점으로 생각하면 된다. 두 행성 A(xA, yA, zA)와 B(xB, yB, zB)를 터널로 연결할 때 드는 비용은 min(|xA-xB|, |yA-yB|, |zA-zB|)이다. 민혁... 백준psbojcpp그래프MST최소 신장 트리MST [백준/C++] 6497번. 전력난 길의 가로등을 켜 두면 하루에 길의 미터 수만큼 돈이 들어가는데, 일부를 소등하여 그만큼의 돈을 절약할 수 있다. 그러나 만약 어떤 두 집을 왕래할 때, 불이 켜져 있지 않은 길을 반드시 지나야 한다면 위험하다. 그래서 도시에 있는 모든 두 집 쌍에 대해, 불이 켜진 길만으로 서로를 왕래할 수 있어야 한다. 위 조건을 지키면서 절약할 수 있는 최대 액수를 구하시오. 각 테스트 케이스의 첫째 ... 백준psboj최소 신장 트리cppMST분리 집합MST