-
[C++] unionFind알고리즘/알고리즘 스킬 2022. 12. 28. 00:09반응형123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include <iostream>using namespace std;int arr[11];// 연결된 부모가 없으므로 자기 자신으로 초기화void init() {for(int i=0; i<11; i++) {arr[i] = i;}}// 부모 찾기int find(int x) {if(arr[x] == x) { return x; }return arr[x] = find(arr[x]);}// 부모가 같은지 확인bool isUnion(int x,int y) {x = find(x);y = find(y);if(x == y) { return true; }return false;}// 부모 만들기void merge(int x, int y) {x = find(x);y = find(y);if(x == y) { return; }arr[y] = x; // y 의 부모는 x}int main() {init();merge(1,3);merge(3,5);merge(5,7);if(isUnion(3,7)) {cout << "3 과 7의 부모는 같습니다.";}else {cout << "3과 7의 부모는 다릅니다.";}}
cs 프로그래머스 섬 연결하기를 풀며 사용된 알고리즘
가끔 나올 수도 있으니 잘 외워두자728x90반응형'알고리즘 > 알고리즘 스킬' 카테고리의 다른 글
[C++] 소수 판별 알고리즘 (0) 2023.01.23 [C++] priority_queue 오름차순 만들기 (0) 2023.01.19 c++ sstream 헤더를 이용한 공백기준 문자열 자르기 (0) 2022.07.06