Python (TEST)

SWEA - 1249. 보급로

Silverism 2020. 8. 5. 20:55
for tc in range(1, 1 + int(input())):
    n = int(input())
    m = [list(map(int, input())) for _ in range(n)]
    v = [[9 * n * n] * n for _ in range(n)]
    v[0][0] = 0
    st = [(0, 0)]
    while st:
        st2 = []
        for r, c in st:
            for dr, dc in ((1, 0), (-1, 0), (0, 1), (0, -1)):
                if 0 <= r + dr < n and 0 <= c + dc < n and v[r + dr][c + dc] > v[r][c] + m[r + dr][c + dc]:
                    v[r + dr][c + dc] = v[r][c] + m[r + dr][c + dc]
                    st2.append((r + dr, c + dc))
        st = st2
    print(f'#{tc}', v[n - 1][n - 1])