Union Find 2

[알고리즘] 2차원 배열에서의 Union Find 알고리즘의 적용

2차원에서의 유니온 파인드(Union-Find, 또는 Disjoint Set)는 일반적인 1차원 유니온 파인드의 아이디어를 확장한 것이다. 이를 2차원 배열에서 사용하려면 각 셀을 노드로 간주하고, 인접한 셀들(상하좌우)을 연결하는 방식으로 적용할 수 있다. 이 과정에서 최적화를 위해 그리디 알고리즘을 사용할 수 있는 방법도 있다.1. 2차원 유니온 파인드 구조화2차원 그리드에서 유니온 파인드를 사용하는 대표적인 문제로는 "섬의 개수 찾기", "2차원 퍼즐 해결" 등이 있다. 각 셀을 노드로 보고, 상하좌우로 인접한 셀들을 서로 연결할 수 있는 조건이 충족되면 Union 연산을 적용한다. Union-Find의 핵심은 셀들이 속한 그룹(집합)을 효율적으로 관리하는 것이다. 2차원 좌표의 변환유니온 파인드의..

코딩테스트 2024.10.01

[알고리즘] Union Find, 서로소 집합, 상호 배타 집합

Union Find란?여러 개의 서로소 집합을 병합하고 서로 다른 원소들이 같은 집합에 속해있는지 아닌지를 판별하는데 사용하기 위한 알고리즘이다.  크게 makeSet(),Union(), Find() 세가지의 연산으로 이루어진다.Union : 병합, 합집합을 의미한다.Find : 원소가 어떤 집합에 속해 있는지 탐색한다.서로소 집합 (상호 배타 집합)이란?공통 원소가 공집합 뿐, 공통 원소가 없는 두 집합을 의미하는데, 공약수가 1뿐인 두 정수를 의미하는 서로소의 개념이 집합으로 확장된 것이다. 직 교집합이 존재하지 않고, 각 집합은 대표자를 통해 구분한다. 표현 방법이러한 서로소 집합을 나타내는 방식에는 크게 두가지가 있다. 1. 연결 리스트같은 집합의 원소들을 하나의 연결 리스트로 관리한다.연결 리스..

코딩테스트 2024.09.24