알고리즘 문제 풀기/백준(Baekjoon)
[백준 알고리즘] 3980. 선발명단 - 파이썬
hibscus
2021. 3. 23. 09:16
주어진 배열이 2차배열이라 check도 2차배열로 사용하려 했는데,
idx와 check의 r행이 같이 가므로 check의 인덱스를 idx로 바꿀 수 있어 더 간편하게 코드를 짤 수 있었다.
def get_max(idx, cur_sum):
global max_sum
if idx == 11:
if cur_sum > max_sum:
max_sum = cur_sum
return
for j in range(11):
if check[j]: continue
if sportsman[idx][j]:
check[j] = 1
get_max(idx+1, cur_sum+sportsman[idx][j])
check[j] = 0
T = int(input())
for _ in range(T):
sportsman = []
check = [0] * 11
max_sum = 0
for i in range(11):
sportsman.append(list(map(int, input().split())))
get_max(0, 0)
print(max_sum)