def check(m,n,lst):
check=[]
ad1=[]
ad2=[]
ad3=[]
ad4=[]
for i in range(m-1):
for j in range(n-1):
if lst[i][j]!='1':
if lst[i][j] == lst[i+1][j] and \
lst[i][j] == lst[i+1][j+1] and \
lst[i][j] == lst[i][j+1]:
ad1=[i,j]
ad2=[i,j+1]
ad3=[i+1,j]
ad4=[i+1,j+1]
check.append(ad1)
check.append(ad2)
check.append(ad3)
check.append(ad4)
return check
##보낸 좌표중 중복된 것을 없애준다
def ulst(lst):
u=[]
for v in lst:
if v not in u:
u.append(v)
return sorted(u)
## 없어져야하는 좌표들 다 1로 바꿔줌
def ddd(list1, check):
global cnt
for n in check:
for j in range(len(check)):
if n[1]==check[j][1]:
list1[n[0]] = list1[n[0]][:n[1]]+str(cnt)+list1[n[0]][(n[1]+1):]
break
return list1
##없어질 좌표들 내려주는 것
def down(m,n,dlst):
for i in range(m - 1):
for k in range(n):
if dlst[i + 1][k] == str(1):
dlst[i + 1] = dlst[i+1][:k] + dlst[i][k]+ dlst[i+1][(k + 1):]
dlst[i] = dlst[i][:k] + str(cnt) + dlst[i][(k + 1):]
for a in range(m - 1):
for b in range(n):
if dlst[a + 1][b] == str(1) and dlst[a][b].isalpha():
down(m,n,dlst)
return dlst
def kakao6(m,n,lst):
a=check(m,n,lst)
a1=ulst(a)
a2=ddd(lst, a1)
a3=down(m,n,a2)
print(len(check(m,n,a3)))
if len(check(m,n,a3))>0:
print(a3)
return kakao6(m,n,a3)
else:
print(a3)
cnt=0
for i in range(m):
for j in range(n):
if a3[i][j] == str(1):
cnt+=1
return cnt
#lst=["CCBDE", "AAADE", "AAABF", "CCBBF"]
lst=["TTTANT", "RRFACC", "RRRFCC", "TRRRAA", "TTMMMF", "TMMTTJ"]
kakao6(6,6,lst)