728x90

- N x M 얼음 틀

- 구멍 0, 칸막이 1

- 생성되는 아이스크림 개수

 

1) 상하좌우 살펴본 뒤 '0' 이면서 아직 방문하지 않은 지점이면 방문

2) 방문한 지점에서 상하좌우 살펴보면서 방문 진행 과정 반복 => 연결된 모든 지점 방문 

3) 1, 2 반복하여 방문하지 않는 지점의 수 카운트

 

# N x M 얼음 틀
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 <= -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

# 음료수 채우기
result = 0
for i in range(n):
    for j in range(m):
        if dfs(i, j) == True:
            result += 1

print(result)

 

 

어렵군..

반응형

'전.py' 카테고리의 다른 글

[python] 백준 1448 삼각형 만들기  (0) 2022.02.23
[python] 미로 탈출  (0) 2022.02.18
[python] DFS & BFS  (0) 2022.02.18
[python] 유클리드 호제법 (재귀 함수)  (0) 2022.02.18
[python] 팩토리얼 (재귀 함수)  (0) 2022.02.18
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기