ν°μ€ν 리 λ·°
728x90
λ°μν
λ¬Έμ
λ¬Έμ νμ΄
μμ μ§μ (0, 0)μμ λμ°© μμΉμ κ°λκΉμ§ λͺμΉΈμ μ΄λν΄μΌ νλμ§ μ°Ύλ λ¬Έμ μ΄λ€. μμ μ§μ λΆν° μ, ν, μ’, μ°λ‘ νμνλ©΄μ μΈμ ν μΉΈ μ€μ λ°©λ¬Έ κ°λ₯ν μΉΈμ΄ μλμ§ νμΈ νμ, κ°μ μ€μ²©μν€λ©° λμ°© μμΉμ μ΄λ₯΄λ μ λ λͺμΉΈμ μ΄λνλμ§ μΆλ ₯νλ©΄ λλ€.
μμΌ κ·Έλ¦Όκ³Ό κ°μ΄ μμ μ λ ₯1, 2λ₯Ό νμνκ² λλ©΄ λμ°© μ§μ μ μ΄λ₯΄κΈ°κΉμ§ κ°μ μ€μ²©νλ©΄ λ΅μ ꡬν μ μλ κ²μ μ μ μλ€. μ²μμλ λ°±νΈλνΉμ΄ νμνμ§ μμκΉ μκ°νλλ° κ·Έλ΄ νμ μμ΄ κ°μ λμ νλ©° νμμ μ§ννλ©΄ λλ€.
μ½λ
from sys import stdin
from collections import deque
def visitable(x, y):
return 0 <= x < n and 0 <= y < m and graph[x][y] == 1
def bfs(start):
q = deque([start])
while q:
cur_x, cur_y = q.popleft()
for x, y in dirs:
next_x, next_y = x + cur_x, y + cur_y
if visitable(next_x, next_y):
q.append([next_x, next_y])
graph[next_x][next_y] += graph[cur_x][cur_y]
return graph[n - 1][m - 1]
if __name__ == "__main__":
n, m = map(int, stdin.readline().split())
graph = [list(map(int, stdin.readline().rstrip())) for _ in range(n)]
dirs = ((0, 1), (0, -1), (1, 0), (-1, 0))
print(bfs([0, 0]))
728x90
λ°μν
'π¨βπ» μ½λ©ν μ€νΈ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°±μ€: 7526 λμ΄νΈμ μ΄λ (0) | 2020.07.22 |
---|---|
λ°±μ€: 7576 ν λ§ν (0) | 2020.07.22 |
λ°±μ€: 4963 μ¬μ κ°μ (0) | 2020.07.21 |
λ°±μ€: 2667 λ¨μ§λ²νΈλΆμ΄κΈ° (0) | 2020.07.21 |
λ°±μ€: 13023 ABCDE (0) | 2020.07.20 |
λκΈ
κΈ λ³΄κ΄ν¨
μ΅κ·Όμ μ¬λΌμ¨ κΈ
μ΅κ·Όμ λ¬λ¦° λκΈ