SWEA 1227. 미로2(Python)(D4)

Wjong·2023년 1월 31일
0

swea

목록 보기
16/36


swea 1226, 미로1에서 미로의 size가 16 -> 100으로 커진 버전이다.
똑같은 BFS 알고리즘으로 해결!
(1,1)에서 출발해, 상하좌우를 탐색

  • (nx,ny)가 0일경우 방문처리 후 탐색
  • (nx,ny)가 3일경우 결과를 1로 바꾸고 break!
from collections import deque
res=[]
dx=[1,-1,0,0]
dy=[0,0,-1,1]
for m in range(10):
    tmp=0
    _=input()
    li=[]
    visit=[[0]*(100) for i in range(100)]
    for i in range(100):
        li.append(list(input()))
    visit[1][1]=1
    q=deque()
    q.append((1,1))
    while q:
        x,y=q.popleft()
        for i in range(4):
            nx=x+dx[i]
            ny=y+dy[i]
            if 0<=nx<=99 and 0<=ny<=99:
                if li[nx][ny]=="3":
                    tmp=1
                    break
                if li[nx][ny]=="0" and visit[nx][ny]==0:
                    q.append((nx,ny))
                    print(f'!nx:{nx} ny:{ny}')
                    visit[nx][ny]=1
        if tmp==1:
            break
    res.append(tmp)
for i in range(len(res)):
    print("#%d %s"%(i+1,res[i]))
profile
뉴비

0개의 댓글