[백준] 2178번 python : 미로탐색
2021. 6. 4. 21:10ㆍ발돋움/알고리즘
728x90
반응형


import sys
from collections import deque
n, m = map(int, sys.stdin.readline().split())
t = [list(map(int, list(sys.stdin.readline().strip()))) for _ in range(n)]
w = [[0] * m for _ in range(n)] # 해당위치 값 + 경로 값
v = [[0] * m for _ in range(n)] # 방문여부
dx = [1, -1, 0, 0] #j 동서남북
dy = [0, 0, 1, -1] #i 동서남북
q = deque()
v[0][0] = 1
w[0][0] = 1
q.append((0, 0))
while(q):
i, j = q.popleft()
for k in range(4):
di = i + dy[k]
dj = j + dx[k]
if (0 <= di < n) and (0 <= dj < m):
if (t[di][dj] == 1) and (v[di][dj] == 0):
q.append((di, dj))
w[di][dj] = w[i][j] + 1
v[di][dj] = 1
print(w[n-1][m-1])

DFS로는 풀 수 없는 것 같아서 BFS로 풀었다.
아니 티스토리 왜 이 모양이냐고...왜 한글 안써지는건데 ㅡㅡ
728x90
반응형
'발돋움 > 알고리즘' 카테고리의 다른 글
| 프로그래머스 K번째 수 (Python) (0) | 2021.12.08 |
|---|---|
| [백준] 2667번 python : 단지번호붙이기 (0) | 2021.06.03 |
| [백준] 11724번 python : 연결요소의 갯수 (0) | 2021.06.03 |
| [백준] 1193번 (python 파이썬) 분수찾기 / [구름레벨] 뱀 유리수 수열 (0) | 2021.04.14 |
| [백준] 6603번 (python 파이썬) 로또 (0) | 2021.04.05 |