[Algorithm/Programmers] 섬 연결하기 Swift
섬 연결하기 Level 3 문제 풀이: n개의 섬을 최소 비용으로 모든 섬이 통행이 가능하도록 만든다. -> 크루스칼 알고리즘을 이용한다. 🍎 크루스칼 알고리즘 모든 간선에 대하여 정렬을 수행한 뒤에 가장 거리가 짧은 간선부터 집합에 포함시키는 것이다. 1. 비용을 기준으로 오름차순으로 정렬한다. 2. 간선을 차례로 확인하면서 사이클이 발생하는지 확인한다. 2-1. 사이클이 발생하지 않으면 최소 신장 트리에 포함한다. 2-2. 사이클이 발생하면 PASS 3. 모든 간선에 대하여 2번을 반복한다. 비용으로 정렬을 한 배열: [[0, 1, 1], [1, 3, 1], [0, 2, 2], [1, 2, 5], [2, 3, 8]] 같은 사이클인지 확인하기 위해서 Parent 배열을 만듭니다. 집합에 포함되어 있지 ..
2021. 2. 2.