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 백준 알고리즘 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 [BOJ 1922] 네트워크 연결 (Java) 문제 도현이는 컴퓨터와 컴퓨터를 모두 연결하는 네트워크를 구축하려 한다. 하지만 아쉽게도 허브가 있지 않아 컴퓨터와 컴퓨터를 직접 연결하여야 한다. 그런데 모두가 자료를 공유하기 위해서는 모든 컴퓨터가 연결이 되어 있어야 한다. (a와 b가 연결이 되어 있다는 말은 a에서 b로의 경로가 존재한다는 것을 의미한다. a에서 b를 연결하는 선이 있고, b와 c를 연결하는 선이 있으면 a와 c는 연... MSTMST 백준 알고리즘 10423번 : 전기가 부족해 살기 좋은 나라 1등으로 꼽힌 이후 외국인 방문객들이 많아졌고, 그에 따라 전기 소비율이 증가하여 전기가 많이 부족한 상황이 되었다. 발전소는 이미 특정 도시에 건설되어 있고, 따라서 추가적으로 드는 비용은 케이블을 설치할 때 드는 비용이 전부이다. 이 프로젝트의 문제는 케이블을 설치할 때 드는 비용이 굉장히 크므로 이를 최소화해서 설치하여 모든 도시에 전기를 공급하는 것이다. 여러분은 N개... 백준 알고리즘크루스칼MSTMST [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|)이다. 민혁... UpSolved백준 알고리즘크루스칼MSTMST [알고리즘 개념] 최소신장트리(MST)-Kruskal [알고리즘 개념] 최소신장트리(MST)-Kruskal 개념 탐욕적인 방법으로 최소신장트리를 구한다 순서 간선들의 가중치를 오름차순으로 정렬한다 정렬된 간선들의 리스트에서 사이클을 형성하지 않는 간선을 찾아 현재의 최소비용 신장트리의 집합에 추가한다 실제로 사이클을 알기 위해서는 연결하려는 간선의 양 끝점이 동일한 집합에 없는지를 체크해야 한다. 이를 위해서 union-find 알고리즘을 사용... MSTalgorithmkruskalMST [Programmers] 섬 연결하기 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다. ... 탐욕법MST프로그래머스파이썬알고리즘최소 신장 트리그리디 알고리즘MST [백준]#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 [백준] 2887 행성 터널 - MST 문제 출처 : 크루스칼 알고리즘을 사용해 해결할 수 있는 최소신장트리 유형의 문제이다. 출발 노드, 도착 노드, 가중치로 입력이 주어지는 것이 아니라 3차원 좌표로 주어지는 점에서 흥미로운 문제라고 생각되어 정리해보고자 한다. 실제로 문제를 해결할 때, 이 좌표들로 리스트를 구성할 때 메모리 초과로 한번에 해결하지 못했다. 좌표 x, y, z를 입력 받아 dots 리스트에 넣는다. 양방향 간... MSTMST
[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 백준 알고리즘 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 [BOJ 1922] 네트워크 연결 (Java) 문제 도현이는 컴퓨터와 컴퓨터를 모두 연결하는 네트워크를 구축하려 한다. 하지만 아쉽게도 허브가 있지 않아 컴퓨터와 컴퓨터를 직접 연결하여야 한다. 그런데 모두가 자료를 공유하기 위해서는 모든 컴퓨터가 연결이 되어 있어야 한다. (a와 b가 연결이 되어 있다는 말은 a에서 b로의 경로가 존재한다는 것을 의미한다. a에서 b를 연결하는 선이 있고, b와 c를 연결하는 선이 있으면 a와 c는 연... MSTMST 백준 알고리즘 10423번 : 전기가 부족해 살기 좋은 나라 1등으로 꼽힌 이후 외국인 방문객들이 많아졌고, 그에 따라 전기 소비율이 증가하여 전기가 많이 부족한 상황이 되었다. 발전소는 이미 특정 도시에 건설되어 있고, 따라서 추가적으로 드는 비용은 케이블을 설치할 때 드는 비용이 전부이다. 이 프로젝트의 문제는 케이블을 설치할 때 드는 비용이 굉장히 크므로 이를 최소화해서 설치하여 모든 도시에 전기를 공급하는 것이다. 여러분은 N개... 백준 알고리즘크루스칼MSTMST [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|)이다. 민혁... UpSolved백준 알고리즘크루스칼MSTMST [알고리즘 개념] 최소신장트리(MST)-Kruskal [알고리즘 개념] 최소신장트리(MST)-Kruskal 개념 탐욕적인 방법으로 최소신장트리를 구한다 순서 간선들의 가중치를 오름차순으로 정렬한다 정렬된 간선들의 리스트에서 사이클을 형성하지 않는 간선을 찾아 현재의 최소비용 신장트리의 집합에 추가한다 실제로 사이클을 알기 위해서는 연결하려는 간선의 양 끝점이 동일한 집합에 없는지를 체크해야 한다. 이를 위해서 union-find 알고리즘을 사용... MSTalgorithmkruskalMST [Programmers] 섬 연결하기 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다. ... 탐욕법MST프로그래머스파이썬알고리즘최소 신장 트리그리디 알고리즘MST [백준]#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 [백준] 2887 행성 터널 - MST 문제 출처 : 크루스칼 알고리즘을 사용해 해결할 수 있는 최소신장트리 유형의 문제이다. 출발 노드, 도착 노드, 가중치로 입력이 주어지는 것이 아니라 3차원 좌표로 주어지는 점에서 흥미로운 문제라고 생각되어 정리해보고자 한다. 실제로 문제를 해결할 때, 이 좌표들로 리스트를 구성할 때 메모리 초과로 한번에 해결하지 못했다. 좌표 x, y, z를 입력 받아 dots 리스트에 넣는다. 양방향 간... MSTMST