문제
https://www.acmicpc.net/problem/27211
코드
import sys
from collections import deque
queue=deque()
input=sys.stdin.readline
n, m = map(int, input().split())
graph = [list(map(int, input().split())) for _ in range(n)]
visited = [[False] * m for _ in range(n)]
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def bfs(i,j):
visited[i][j] = True
queue.append((i,j))
while queue:
r,c=queue.popleft()
for k in range(4):
if 0 <= r + dx[k] < n:
nx = r + dx[k]
elif r + dx[k] == n:
nx = 0
elif r + dx[k] == -1:
nx = n - 1
if 0 <= c + dy[k] < m:
ny = c + dy[k]
elif c + dy[k] == m:
ny = 0
elif c + dy[k] == -1:
ny = m - 1
if graph[nx][ny]==0 and visited[nx][ny]==False:
visited[nx][ny] = True
queue.append((nx,ny))
count = 0
for i in range(n):
for j in range(m):
if visited[i][j] == False and graph[i][j]==0:
bfs(i,j)
count+=1
print(count)
'문제풀이 > DFS & BFS' 카테고리의 다른 글
[파이썬] [BFS] 백준 4179 불! (0) | 2023.02.21 |
---|---|
[파이썬] [DFS] 백준 2668 숫자고르기 (0) | 2023.02.14 |
@[파이썬] [DFS] 백준 2468 안전 영역 (0) | 2022.12.29 |
@[파이썬] [DFS] 백준 1012 유기농 배추 (0) | 2022.12.27 |
@[파이썬] [BFS] 백준 2178 미로 탐색 (0) | 2022.12.26 |