Python/알고리즘

[python] 이것이 취업을 위한 코딩테스트다 DFS - 음료수 얼려먹기

TheWing 2020. 11. 12. 01:14
n, m = 4, 5
edges = [
    [0, 0, 1, 1, 0],
    [0, 0, 0, 1, 1],
    [1, 1, 1, 1, 1],
    [0, 0, 0, 0, 0]
]

visited = [[[False] * 5] * 4]

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

    return False

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

print(cnt)

Reference

  • 해당 포스팅은 이것이 취업을 위한 코딩테스트다 책을 보고 풀이 해본 것입니다. 지적사항 있으시면 댓글 남겨주시면 감사하겠습니다.