import copy def spread(a,i): a[i]='2' for m in range(12): if array[i][m]==1: if a[m]=='1': spread(a,m) array=[[0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0], [1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0], [1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0], [1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0], [1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0], [0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1], [0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1], [0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1], [0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1], [0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0]] answer=[0 for i in range(13)] for i in range(2**12): x=list(bin(i)) x.pop(0); x.pop(0) y=['0' for _ in range(12-len(x))] y.extend(x) n=12 new_arr=copy.deepcopy(array) for j in range(12): if y[j]=='0': n-=1 for k in range(12): new_arr[j][k]=0 new_arr[k][j]=0 #함수 number=-1 for j in range(12): if y[j]=='1': number+=1 spread(y,j) answer[n]+=number