π 곡λΆνλ μ§μ§μνμΉ΄λ μ²μμ΄μ§?
[BAEKJOON python] 2178_λ―Έλ‘νμ λ³Έλ¬Έ
728x90
λ°μν
N×Mν¬κΈ°μ λ°°μ΄λ‘ ννλλ λ―Έλ‘
λ―Έλ‘μμ 1μ μ΄λν μ μλ μΉΈμ λνλ΄κ³ , 0μ μ΄λν μ μλ μΉΈμ λνλΈλ€.
μ΄λ¬ν λ―Έλ‘κ° μ£Όμ΄μ‘μ λ, (1, 1)μμ μΆλ°νμ¬ (N, M)μ μμΉλ‘ μ΄λν λ μ§λμΌ νλ μ΅μμ μΉΈ μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±
ν μΉΈμμ λ€λ₯Έ μΉΈμΌλ‘ μ΄λν λ, μλ‘ μΈμ ν μΉΈμΌλ‘λ§ μ΄λ
첫째 μ€μ λ μ μ N, M(2 ≤ N, M ≤ 100)μ΄ μ£Όμ΄μ§λ€. λ€μ Nκ°μ μ€μλ Mκ°μ μ μλ‘ λ―Έλ‘κ° μ£Όμ΄μ§λ€. κ°κ°μ μλ€μ λΆμ΄μ μ λ ₯μΌλ‘ μ£Όμ΄μ§λ€.
첫째 μ€μ μ§λμΌ νλ μ΅μμ μΉΈ μλ₯Ό μΆλ ₯νλ€. νμ λμ°©μμΉλ‘ μ΄λν μ μλ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λ€
from collections import deque
n, m = map(int, input().split())
maze = []
# μνμ’μ°
dx = [0, 0, -1, 1]
dy = [1, -1, 0, 0]
for i in range(n) :
maze.append(list(map(int, input())))
def bfs(x, y) :
queue = deque()
queue.append((x, y))
while queue :
x, y = queue.popleft()
for i in range(4) :
nx = x + dx[i]
ny = y + dy[i]
if (0 <= nx < n and 0 <= ny < m) :
if (maze[nx][ny] == 1) :
queue.append((nx, ny))
maze[nx][ny] = maze[x][y] + 1
bfs(0, 0)
print(maze[n-1][m-1])
# input
# 4 6
# 101111
# 101010
# 101011
# 111011
# result
# 15
728x90
λ°μν
'π¦₯ μ½ν > BAEKJOON' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BAEKJOON python] 2667_λ¨μ§λ²νΈλΆμ΄κΈ° (0) | 2022.10.07 |
---|---|
[BAEKJOON python] 2606_λ°μ΄λ¬μ€ (0) | 2022.10.06 |
[BAEKJOON python] 1260_DFSμ BFS (0) | 2022.10.06 |
[v.λμ κ³νλ² 1-μ λλ ν¨μ μ€ν-9184]BAEKJOON_Python (0) | 2022.01.27 |
[v.λμ κ³νλ² 1-νΌλ³΄λμΉ ν¨μ-1003]BAEKJOON_Python (0) | 2022.01.27 |
Comments