dfs의 전형적인 방법으로
1) 범위먼저 설정
2) 방문가능한지와 맞는 색인지 확인해보고,
3) 앞뒤좌우에 있으면 cnt를 늘린다.
물론 i, j의 for loop로 돌려서 모두 찾아야지요~
이 문제를 풀면서 의문점
1. arr에 값을 넣을때 왜 다른가?
1) arr = [list(map(int, input().split())) for _ in range(7)]
는 ok
2)
for _ in range(7):
arr = list(map(int, input().split()))
에서 arr[1][1]의 타잎값은 안나오지???
궁금해...
arr = [list(map(int, input().split())) for _ in range(7)]
#for _ in range(7):
# arr = list(map(int, input().split()))
#print(type(arr))
visited=[[0]*7 for _ in range(7)]
res=0
def dfs(x,y,arr,v,val):
if x<0 or x>=7 or y<0 or y>=7:
return 0
cnt=0
if v[x][y]==0 and arr[x][y] == val:
v[x][y] = arr[x][y]
cnt+=1
cnt+= dfs(x,y+1,arr,v,val)
cnt+= dfs(x,y-1,arr,v,val)
cnt+= dfs(x+1,y,arr,v,val)
cnt+= dfs(x-1,y,arr,v,val)
return cnt
#print(type(arr[1][1]))
for i in range(7):
for j in range(7):
if dfs(i,j,arr,visited,arr[i][j]) >= 3:
res+=1
print(res)