반응형
https://www.acmicpc.net/problem/17198
from collections import deque
def bfs(r,c):
q = deque()
q.append((r,c))
t[r][c]=0
while q:
r,c = q.popleft()
for dr,dc in d:
R,C = r+dr, c+dc
if 0<=R<10 and 0<=C<10:
if t[R][C] == 'L':
return t[r][c]
if t[R][C] == '.':
q.append((R,C))
t[R][C] = t[r][c]+1
t = [list(input()) for _ in range(10)]#공백 아니어도 split
d = [(-1,0),(1,0),(0,-1),(0,1)]
for i in range(10):
for j in range(10):
if t[i][j] == 'B':
cnt = bfs(i,j)
print(cnt)
이번 문제는 bfs인데요. 연습이 안되어있다보니 bfs는 기본 문제라도 상당히 어렵네요. 그리고 dfs와 달리 코드가 직관적이지 않은 것도 한 몫 하는것 같습니다.
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ][Python]2606번 풀이 (0) | 2022.05.28 |
---|---|
[BOJ][Python]1010번 풀이 (0) | 2022.05.27 |
[BOJ][Python]24416번 풀이 (0) | 2022.05.25 |
[BOJ][Python]1388번 풀이 (0) | 2022.05.24 |