diff --git a/code_study/Baekjoon/c/16724.c b/code_study/Baekjoon/c/16724.c new file mode 100644 index 0000000..29d6958 --- /dev/null +++ b/code_study/Baekjoon/c/16724.c @@ -0,0 +1,68 @@ +#include + +char field[1001][1001]; +int N, M; +int parent[1000000]; +int rank[1000000]; + +int find(int x) { + if(x != parent[x]) return parent[x] = find(parent[x]); + return x; +} + +void swap(int *a, int *b) { + int temp = *a; + *a = *b; + *b = temp; +} + +void Union(int x, int y) { + x = find(x); + y = find(y); + + if(rank[x] < rank[y]) swap(&x, &y); + + parent[y] = x; + + if(rank[x] == rank[y]) rank[x]++; +} + + +int area_num(int i, int j) { + return M*i + j; +} + +int main() { + scanf("%d %d",&N, &M); + for(int i=0; i +#include + +int map[1000][1000]; +int group[1000][1000]; +int group_size[1000*1000]; +int N, M; +bool visited[1000][1000]; + +int group_num; +int qu[1000*1000][2]; +int front, rear; +int dx[4] = {-1, 1, 0, 0}; +int dy[4] = {0, 0, 1, -1}; + +int result[1000][1000]; + +bool isPossible(int x, int y) { + return (0<=x && x