포인트: 인접한 네 방향(좌우상하)에 0이 아닌 값이면 차례대로 증가된 값을 리스트에 저장
조건
- 배열의 범위를 넘으면 안됨
- 방문한(0이 아닌 값이 기입되어 있으면)칸이면 값을 저장하지 않음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
n, m = map(int, input().strip().split())
queue = [[0,0]]
lists = []
for i in range(n):
lists.append(list(map(int, input())))
visited = [[0]*m for _ in range(n)]
visited[0][0] = 1
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
while len(queue) != 0:
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 > nx or nx >= n: continue
if 0 > ny or ny >= m: continue
if lists[nx][ny] == 0: continue
if visited[nx][ny] != 0: continue
visited[nx][ny] = visited[x][y] + 1
print(visited[n-1][m-1])
|
참고 URL: https://m.blog.naver.com/wpghks7/221604689852
'Algorithm' 카테고리의 다른 글
최소신장트리 (0) | 2019.10.20 |
---|---|
[백준] 바이러스 2060 Python (0) | 2019.10.17 |
[백준] DFS와 BFS 1260 Python (0) | 2019.10.17 |
BFS (Breath First Search) 너비우선탐색 Python 인접리스트 활용 (0) | 2019.10.17 |
DFS (Depth First Search) 깊이우선탐색 C++, Python 인접리스트 활용 (0) | 2019.10.15 |