유니온파인드

알고리즘

[알고리즘] 크루스칼 알고리즘이란? (최소 신장 트리 찾기)

1️⃣ 신장 트리란?크루스칼 알고리즘은 '최소 신장 트리 알고리즘'이다. 즉, 최소 신장 트리를 찾기 위한 알고리즘이라는 것이다.최소 신장 트리란 신장 트리 중에서 최소 비용으로 만들 수 있는 신장 트리를 의미한다. 크루스칼 알고리즘을 설명하기 전에 신장 트리에 대해 설명을 하고 넘어가겠다. 신장트리란 하나의 그래프가 있을 때 모든 노드를 포함하면서 사이클이 존재하지 않는 부분 그래프를 의미한다.모든 노드가 포함되어 서로 연결되면서 사이클이 존재하지 않는다는 조건은 트리의 성립 조건에 해당한다. 따라서 이런 그래프를 신장 트리라고 부르는 것이다. 신장 트리는 동일한 그래프에서도 여러 개의 신장트리를 찾을 수 있다. 하지만 가능한 한 최소한의 비용으로 신장 트리를 찾아야 하는 상황이 존재한다.따라서 신장 ..

알고리즘/프로그래머스

[프로그래머스] 네트워크(LV3 - Python) - Union-Find(유니온 파인드) 알고리즘

해당 글에서는 네트워크 문제를 Python을 이용해 풀이하고자 한다.해당 문제는 Union-Find를 사용하는 대표적인 문제로, 해당 알고리즘을 까먹어 다시 상기하고자 다시 풀이했다! 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🔷 문제 설명 🔷 문제 풀이해당 문제를 풀기 위해선 Union-Find의 개념에 대해 알아야 한다.이는 서로소 집합을 찾는 알고리즘으로, 서로소 집합은 공통 원소가 없는 두 집합을 의미한다. 네트워크를 찾는 과정이 서로소 집합을 찾는 과정에 해당하며, 따라서 Union-Find를 이용하면 된다...

당찬 뱁새
'유니온파인드' 태그의 글 목록