C언어/문제풀다 하나씩
setUnion 과 findboss해보기 - UNIONFIND
mcdn
2020. 5. 22. 13:40
반응형
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
char arr[100] = { 0 };
char find_boss(char ch) {
if (arr[ch] == 0) return ch;
char ret = find_boss(arr[ch]);
return ret;
}
void setUnion(char a, char b){
char apar = find_boss(a);
char bpar = find_boss(b);
if (apar == bpar) return;
arr[bpar] = apar;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n;i++) {
char a, b;
cin >> a >> b;
if (find_boss(a) == find_boss(b)) {
cout << "발견";
return 0;
}
setUnion(a, b);
}
cout << "미발견";
}
입력 예제
4 A C A B B D C B
출력 결과
발견
find_boss가 setUnion뒤에 있으면 setUnion할 때 findboss가 작동안함 앞에다 두어야...
반응형