https://www.acmicpc.net/problem/14716
풀이
BFS알고리즘을 이용해서 문제를 풀어주었습니다.
코드
# 14716번 현수막
import sys
from collections import deque
dxys = ((1,0), (-1,0), (0,1), (0,-1), (1,1), (1,-1),(-1,1),(-1,-1))
M, N = map(int, input().split())
grid = [sys.stdin.readline().rstrip().split() for _ in range(M)]
def bfs(s_x, s_y):
queue = deque([])
queue.append([s_x, s_y])
visited[s_y][s_x] = True
while queue:
c_x, c_y = queue.popleft()
for dx, dy in dxys:
n_x = c_x + dx
n_y = c_y + dy
if 0 <= n_x < N and 0 <= n_y < M and visited[n_y][n_x] == False and grid[n_y][n_x] == '1':
visited[n_y][n_x] = True
queue.append([n_x,n_y])
cnt = 0
visited = [[False]*N for _ in range(M)]
for i in range(M):
for j in range(N):
if grid[i][j] == '1' and visited[i][j] == False:
bfs(j,i)
cnt += 1
print(cnt)
출력결과
'백준 > DFS&BFS' 카테고리의 다른 글
[백준][Python] 13565번 침투 - 코팩 (0) | 2023.03.30 |
---|---|
[백준][Python] 16928번 뱀과 사다리 게임 - 코팩 (0) | 2023.03.28 |
[백준][Python] 2660번 회장뽑기 - 코팩 (0) | 2023.03.23 |
[백준][Python] 2636번 치즈 - 코팩 (0) | 2023.03.20 |
[백준][Python] 16953번 A → B - 코팩 (1) | 2023.03.20 |