728x90
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 29 30 | def dfs(y, x): global sub_result, result if result < sub_result: return if y == n - 1 and x == n - 1: result = sub_result return for d in range(2): y_tmp = y + dy[d] x_tmp = x + dx[d] if (y_tmp < n and x_tmp < n) and ((y_tmp, x_tmp) not in visited): visited.append((y_tmp, x_tmp)) sub_result += number[y_tmp][x_tmp] dfs(y_tmp, x_tmp) visited.remove((y_tmp, x_tmp)) sub_result -= number[y_tmp][x_tmp] T = int(input()) for tc in range(1, T + 1): n = int(input()) number = [list(map(int, input().split())) for _ in range(n)] visited = [] dy = [0, 1] dx = [1, 0] sub_result, result = number[0][0], 9876521 dfs(0, 0) print("#{} {}".format (tc, result)) | cs |
728x90
'알고리즘 > SWAE' 카테고리의 다른 글
1486. 장훈이의 높은 선반 (0) | 2021.04.20 |
---|---|
2819. 격자판의 숫자 이어붙이기 (0) | 2021.04.17 |
2635. 수 이어가기. (0) | 2021.04.11 |
1227. 미로2 (0) | 2021.04.07 |
5174. subtree, 5176 이진탐색, 5177. 이진 힙, 5178. 노드의 합 (0) | 2021.04.06 |