1) 배추 배열 전체 탐색 후 1을 발견할 시 BFS 탐색 시작
2) BFS 탐색 큐에서 꺼낸 인덱스 값들을 배추 배열에 넣고 조건문 시작
3) 배추 배열이 1이면 큐에 인덱스 값 배열 삽입
전체 코드
import sys
import collections
input = sys.stdin.readline
def bfs(graph: list, root: list):
queue = collections.deque([root])
while queue:
node = queue.popleft()
i = node[0]
j = node[1]
if graph[i][j] == 1:
graph[i][j] = 0
if i > 0:
queue.append([i - 1,j])
if j > 0:
queue.append([i, j - 1])
if i + 1 < len(graph):
queue.append([i + 1, j])
if j + 1 < len(graph[i]):
queue.append([i, j + 1])
T = int(input())
for _ in range(T):
M, N, K = map(int, input().split())
baechu = [[0 for _ in range(M)] for __ in range(N)]
for __ in range(K):
j, i = map(int, input().split())
baechu[i][j] = 1
count = 0
for i in range(N):
for j in range(M):
if baechu[i][j] == 1:
bfs(baechu, [i, j])
count += 1
print(count)
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 백준 10773 제로 (0) | 2021.02.15 |
---|---|
[Python] 백준 2164 카드 2 (0) | 2021.02.15 |
[Python] 백준 2667 단지번호붙이기 (0) | 2021.02.10 |
[Python] 다익스트라(Dijkstra) 알고리즘 (0) | 2021.02.03 |
[Python] BFS(너비 우선 탐색), DFS(깊이 우선 탐색) (0) | 2021.02.03 |