๋ฐฑ์ค 16390๋ฒ
https://www.acmicpc.net/problem/16390
๋ฌธ์
ํ๊ธฐ
์, ํ, ์ข, ์ฐ, ๋๊ฐ์ ์ด ์ผ์นํ ๋ โ#โ์ ํ๋์ ๋ฌถ์์ผ๋ก ๋ณด์ ๊ณ์ฐํ๋ ๊ฐ๋จํ DFS ๋ฌธ์ ๋ค. ์ฃผ์ด์ง ์ขํ ๋ฐ๊นฅ์ผ๋ก ๋๊ฐ ๋์ ๋๊ฐ์ ๋ง ๊ณ ๋ คํ๋ฉด ์ฝ๊ฒ ๋ฌธ์ ์ ๋ต์ ์ป์ ์ ์๋ค.
๋์ ํ์ด
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**7)
n, m= map(int,input().split())
graph = []
for i in range(n):
graph.append(list(map(str,input().strip())))
def dfs(x,y):
if x<=-1 or x>=n or y<=-1 or y>=m:
return False
if graph[x][y] == "#":
graph[x][y] = "."
dfs(x,y+1)
dfs(x,y-1)
dfs(x-1,y)
dfs(x-1,y+1)
dfs(x-1,y-1)
dfs(x+1,y)
dfs(x+1,y+1)
dfs(x+1,y-1)
return True
return False
result= 0
for i in range(n):
for j in range(m):
if dfs(i,j)== True:
result +=1
print(result)