[백준] 17086번 아기 상어 2 (bfs, python)
728x90
반응형
17086번: 아기 상어 2
첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸의 개수가 한 개 이상인 입력만 주어진다.
www.acmicpc.net
from _collections import deque
def bfs():
q = deque()
q.append((i,j,0))
vis[i][j]=1
while q:
y,x,cnt=q.popleft()
if a[y][x]==1:
return cnt
for k in range(8):
xx=x+dx[k]
yy=y+dy[k]
if xx<0 or yy<0 or xx>=m or yy>=n: continue
if vis[yy][xx]: continue
q.append((yy,xx,cnt+1))
vis[yy][xx]=1
return 0
n,m=map(int,input().split())
vis=[[0]*m for _ in range(n)]
a=[list(map(int,input().split())) for _ in range(n)]
dx,dy=[1,-1,0,0,-1,-1,1,1],[0,0,1,-1,-1,1,-1,1]
res=0
for i in range(n):
for j in range(m):
vis = [[0] * m for _ in range(n)]
cur=bfs()
if cur>res:
res=cur
print(res)
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 14888번 연산자 (python, dfs) (0) | 2020.10.17 |
---|---|
[백준] 16930번 달리기 (python, bfs) (0) | 2020.10.16 |
[백준] 14226번 이모티콘 (bfs, 파이썬) (0) | 2020.10.16 |
[백준] 13913번 숨바꼭질4 (0) | 2020.10.16 |
[백준] 13549번 숨바꼭질 3 (python, bfs) (0) | 2020.10.16 |
TAGS.