冷凍飲料[dfs]


n,m=map(int,input().split())
graph=[] # 리스트라 말고 그래프라 선언해야됨.
for i in range(n):
    graph.append(list(map(int,input())))

def dfs(a,b):
    if a<=-1 or a>=n or b<=-1 or b>=m:
        return False
    

    if graph[a][b]==0:
        graph[a][b]=1
        dfs(a+1,b)
        dfs(a-1,b)
        dfs(a,b+1)
        dfs(a,b-1)
        return True
    else:
        return False

result=0

for i in range(n):
    for j in range(m):
        if dfs(i,j)==True:
            result+=1

print(result)
  • は最初はアクセスによって解決されたが、効率的ではなかった.
  • dfsを使用して再帰関数
  • を記述する
    graph=[] # 리스트라 말고 그래프라 선언해야됨.
    for i in range(n):
        graph.append(list(map(int,input())))
    for i in range(n):
        for j in range(m):
            if dfs(i,j)==True:
                result+=1
    ->ドリンクの氷をチェック