알고리즘, 코테 준비

분리집합(유니온 파인드)

Multitab 2022. 11. 6. 21:53

유니온 파인드 뼈대 코드

int parent[9];

int find(int x) {
    //부모노드 찾기
    if (parent[x] == x)//인덱스 값이 같다면 리턴
        return x;
    //인덱스 값 리턴
    return parent[x] = find(parent[x]);
}

///유니온 파인드 뼈대 코드
void merge(int x, int y) {
    //두 집합을 합치는 기능
    x = find(x);
    y = find(y);
    if (x == y) return;
    parent[y] = x;
}

//두 집합이 서로 같은 집합인지 확인
bool isUnion(int x, int y) {
    x = find(x);
    y = find(y);
    if (x == y)
        return true;
    return false;
}

'알고리즘, 코테 준비' 카테고리의 다른 글

백준 1717번 - 집합의 표현  (0) 2022.11.06
백준17413 - 단어 뒤집기 2  (0) 2022.11.06
그래프 탐색  (0) 2022.11.06
문자열  (1) 2022.11.06
알고리즘 종류와 유형  (0) 2022.11.06