[알고리즘 문제 풀이] 음료수 얼려 먹기

이동욱

2021/09/10

Categories: 알고리즘

문제 - 음료수 얼려먹기


제한 사항


아이디어


코드


from typing import List


def solution(maps: List[List[int]], n: int, m: int) -> int:

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

        if maps[x][y] == 0:
            maps[x][y] = 1
            dfs(x - 1, y)
            dfs(x, y - 1)
            dfs(x + 1, y)
            dfs(x, y + 1)
            return 1
        return 0

    cnt = 0

    for x in range(n):
        for y in range(m):
            if dfs(x, y):
                cnt += 1
    return cnt


if __name__ == "__main__":
    n, m = map(int, input().split())

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

    print(solution(maps, n, m))

배운점


참고 문헌


>> Home