알고리즘/SWEA

[SWEA] 4875. 미로

빙빙 2021. 3. 7. 14:39
def func(i, j):
    global result
    visited[i][j] = 1
    # print(i, j,nums[i][j])

    if nums[i][j] == 3: #값이 안들어감
        # print(i, j)
        result = 1
        return

    if i-1 >= 0 and nums[i-1][j] != 1 and visited[i-1][j] == 0:#
        func(i-1, j)
        if result == 1:
            return
    if j-1 >= 0 and nums[i][j-1] != 1 and visited[i][j-1] == 0:# 좌
        func(i, j - 1)
        if result == 1:
            return
    if j+1 < N and nums[i][j+1] != 1 and visited[i][j+1] == 0: #우
        func(i, j + 1)
        if result == 1:
            return
    if i+1 < N and nums[i+1][j] != 1 and visited[i+1][j] == 0: #하
        func(i+1, j)
        if result == 1:
            return







T = int(input())

for tc in range(1,T+1):
    N = int(input())
    nums = [list(map(int,input())) for _ in range(N)]

    ###입력 완료
    start = 0
    for x in range(N):
        for y in range(N):
            if nums[x][y] == 2:
                s_x = x
                s_y = y


    result = 0
    visited = [[0]*(N) for _ in range(N)]

    func(s_x, s_y)


    print('#{} {}'.format(tc,result))