알고리즘/이것이 취업을 위한 코딩테스트다
3. DFS/BFS - 음료수 얼려 먹기
bright_code
2020. 9. 20. 22:28
728x90
반응형
- idea..
1. 나랑 붙어 있는 모든 0 찾기.
2. 찾기가 끝나면, 얼음 수 1개 늘리기?
3. DFS
n,m = map(int,input().split())
graph = []
for i in range(n):
graph.append ( list(map(int,input())))
# 나랑 연결된 노드들을 모두 방문하는 dfs 함수 만들기
def dfs(x, y):
if x <0 or y < 0 or x >=n or y >=m :
return False
if graph[x][y] == 0 : # 아직 방문되지 않은 노드라면,
graph[x][y] = 1 # 방문처리
dfs(x-1,y)
dfs(x+1,y)
dfs(x,y-1)
dfs(x,y+1)
return True
return False
cnt= 0
for x in range(n):
for y in range(m):
if dfs(x,y) == True: # 한 번 True를 뱉고, 함수 내부에서 연결된 모든 노드에 대한 처리가 끝난다.
cnt += 1
print(cnt )
728x90
반응형