Part6.9_완전탐색_깊이,넓이 우선탐색활용_미로의 초단 거리 통로(BFS)

Eugenius1st·2022년 2월 9일
0

Python_algorithm

목록 보기
53/83

선생님 코드

import sys
sys.stdin = open("input.txt", "rt")
from collections import deque


dx = [1, 0, -1, 0]
dy = [0, 1, 0, -1]
thru = [list(map(int,input().split())) for _ in range(7)]
dis = [[0]*7 for _ in range(7)]
Q = deque()
Q.append((0,0)) #출발지점
thru[0][0] = 1 # 방문한 곳 1로 check

while Q: # Q가 비어지면 멈추도록 한다. 즉 가지에서 뻗어나온 것 중 아무거나 멈춰도 while문 싹 다 멈춤
    tmp = Q.popleft()    
    for i in range(4):
        for i in range(4):
            x = tmp + dx[i]
            y = tmp + dy[i] # 방향 확인
            if 0 <=x <=6 and 0 <=y <=6 and thru[x][y]==0:
                thru[x][y] = 1
                dis[x][y] = dis[tmp[0]][tmp[1]]+1
                Q.append((x,y))

if dis[6][6]==0:
    print(-1)
else:
    print(dis[6][6])
profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글