algorithm'''problem solve
[백준]11724 - 연결 요소의 개수
JunHwa Park
2020. 4. 9. 01:24
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <iostream> using namespace std; void find(int** grp, int* arr, int size, int val) { arr[val] = 1; for (int pos = 0; pos <= size; pos++) { if (grp[val][pos] == 1 && arr[pos] == 0) { find(grp, arr, size, pos); } } } int main() { int N, M, num = 0; cin >> N >> M; int* arr = new int[N + 1]{ 0, }; int** grp = new int*[N + 1]; for (int i = 1; i < N + 1; i++) grp[i] = new int[N + 1]{ 0, }; for (int i = 0; i < M; i++) { int u, v; cin >> u >> v; grp[u][v] = 1; grp[v][u] = 1; } for (int i = 1; i <= N; i++) { if (arr[i] == 0) { num++; find(grp, arr, N, i); } } cout << num << endl; } | cs |