practivceAlgorithm/swexpertacademy
[SWEA][Python] 5188 최소합
findTheValue
2021. 9. 28. 02:54
백트래킹문제.
def dfs(x, y, total):
global min_sum
if total > min_sum:
return
if x == N - 1 and y == N - 1:
min_sum = min(min_sum, total)
return
for dx, dy in delta:
nx, ny = x + dx, y + dy
if nx < N and ny < N:
dfs(nx, ny, total + matrix[nx][ny])
for test in range(1, int(input()) + 1):
N = int(input())
matrix = [list(map(int, input().split())) for _ in range(N)]
delta = ((1, 0), (0, 1))
min_sum = float('inf')
# 총 2N - 1 칸.
dfs(0, 0, matrix[0][0])
print(f'#{test} {min_sum}')