728x90
반응형
문제풀이 GitHub
https://github.com/Seokii/baekjoon
깊이 우선 탐색(DFS)
문제 링크
https://www.acmicpc.net/problem/11123
풀이
import sys
sys.setrecursionlimit(10 ** 6) # 재귀 런타임 에러 해결 코드(허용 깊이를 늘려줌)
def dfs(x,y):
if x <= -1 or x >= h or y <= -1 or y >= w:
return False
if graph[x][y] == "#":
graph[x][y] = "."
cnt.append(1)
dfs(x+1, y)
dfs(x-1, y)
dfs(x, y+1)
dfs(x, y-1)
return True
return False
t = int(input())
res = []
temp = []
for _ in range(t):
cnt = []
h,w = map(int, input().split())
graph = [list(map(str, input().strip())) for _ in range(h)]
for i in range(h):
for j in range(w):
if graph[i][j] == "#":
dfs(i,j)
temp.append(len(cnt))
cnt = []
print(len(temp))
temp = []
전형적인 DFS, BFS를 활용한 문제입니다.
DFS 방식으로 문제를 해결했습니다.
728x90
반응형
'알고리즘 정복하기! > 백준 문제풀이' 카테고리의 다른 글
백준 11508번 Python / Greedy (0) | 2022.03.04 |
---|---|
백준 5046번 Python / 구현 (0) | 2022.03.02 |
백준 11501번 Python / Greedy (0) | 2022.02.28 |
백준 1461번 Python / Greedy (0) | 2022.02.26 |
백준 15903번 Python / Greedy (0) | 2022.02.25 |
댓글