1seul357

[SWEA] 배열 최소 합 본문

알고리즘/SWEA

[SWEA] 배열 최소 합

1seul 2021. 12. 2. 19:59
def dfs(index, Sum):
    global min_num
    if index == N:
        if min_num > Sum:
            min_num = Sum
            return
    for i in range(N):
        if visited[i] != 1:
            visited[i] = 1
            Sum += arr[index][i]
            index += 1
            dfs(index, Sum)
            index -= 1
            visited[i] = 0
            Sum -= arr[index][i]

T = int(input())
for TC in range(T):
    N = int(input())
    arr = [list(map(int, input().split())) for _ in range(N)]
    visited = [0]*N
    min_num = 9999999
    dfs(0, 0)
    print('#{} {}'.format(TC+1, min_num))

'알고리즘 > SWEA' 카테고리의 다른 글

[SWEA] 파스칼의 삼각형  (0) 2021.12.03
[SWEA] 길 찾기  (0) 2021.12.02
[SWEA] 회전  (0) 2021.12.02
[SWEA] 암호생성기  (0) 2021.12.02
[SWEA] 마그네틱  (0) 2021.12.02