Algorithm/DFS&BFS

[μ΄μ½”ν…Œ]DFS/BFS/ 음료수 μ–Όλ €λ¨ΉκΈ°

μ •ν˜Έλ‚˜ 2024. 10. 22. 12:14

πŸ“• 문제

 

 

πŸ“„ λ‚΄κ°€ μƒκ°ν•œ 풀이

0μ—μ„œ μƒν•˜μ’Œμš° μž¬κ·€ν•¨μˆ˜λ‘œ νƒμƒ‰ν•˜κ³  result 1증가 μ‹œν‚€κΈ°

 

πŸ’» λ‹΅μ•ˆ


def dfs(x,y):
    if x <= -1 or x >= n or y <= -1 or y >= m:
        return False
    
    if graph[x][y] == 0:
        graph[x][y] = 1

        dfs(x-1,y)
        dfs(x,y-1)
        dfs(x+1,y)
        dfs(x,y+1)
        return True
    return False


    

n,m = map(int, input().split())

graph = []
for i in range(n):
    graph.append(list(map(int, input())))

result = 0 

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

print(result)

 

πŸ“ 참고자료

https://www.youtube.com/watch?v=7C9RgOcvkvo&t=1620s