SWEA 1226. 미로1(Python)(D4)

Wjong·2023년 1월 31일
0

swea

목록 보기
15/36


(1,1)에서 출발해, 도착지점까지 도달할 수 있는지 확인하는 문제이다.
기본적인 BFS문제!
(1,1)에서 시작해, 상하좌우(dx,dy)를 탐색한다

  • (nx,ny)가 0일경우 이동하면서 방문처리한다.
  • (nx,ny)가 3일경우, 결과값을 1로 바꾸고 break!
from collections import deque
res=[]
dx=[1,0,-1,0]
dy=[0,-1,0,1]
for m in range(10):
    tmp=0
    _=input()
    li=[]
    visit=[[0]*(16) for i in range(16)]
    for i in range(16):
        li.append(list(input()))
    q=deque()
    q.append((1,1))
    visit[1][1]=1
    while q:
        x,y=q.popleft()
        for s in range(4):
            nx=x+dx[s]
            ny=y+dy[s]
            if 0<=nx<=15 and 0<=ny<=15:
                if li[nx][ny]=="3":
                    tmp=1
                    break
                if li[nx][ny]=="0" and visit[nx][ny]==0:
                    q.append((nx,ny))
                    visit[nx][ny]=1
    res.append(tmp)
for i in range(len(res)):
    print("#%d %s"%(i+1,res[i]))
profile
뉴비

0개의 댓글