백트래킹문제.
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}')
'practivceAlgorithm > swexpertacademy' 카테고리의 다른 글
[SWEA][Python] 5201 컨테이너 운반 (0) | 2021.09.28 |
---|---|
[SWEA][Python] 5189 전자카트 (0) | 2021.09.28 |
[SWEA][Python] 10966 물놀이를 가자 (1) | 2021.09.24 |
[SWEA][Python] 1953 탈주범 검거 (0) | 2021.09.24 |
[SWEA][Python] 1952 수영장 (0) | 2021.09.24 |