BOJ 3980 - 선발명단 (python)

rivermt·2023년 8월 3일
0

BOJ

목록 보기
7/18

문제


https://www.acmicpc.net/problem/3980

풀이

겹치는 포지션이 없이 모든 포지션을 채우는 최대 능력치의 합을 구하는 문제이다. n이 별로 크지않아서 백트래킹으로 풀었다.

CODE

import sys
from collections import deque

input = sys.stdin.readline
ans = 0
for i in range(int(input())):
    arr = [list(map(int, input().split())) for _ in range(11)]
    chk = [0] * 11
    ans = 0

    def b_trc(player, sco):
        global ans
        if player >= 11:
           ans = max(ans, sco)
           return

        for i in range(11):
            val = arr[player][i]
            if val == 0 or chk[i]:
                continue
            else:
                chk[i] = 1
                b_trc(player + 1, sco + val)
                chk[i] = 0


    b_trc(0, 0)
    print(ans)
profile
화이팅!!

1개의 댓글

comment-user-thumbnail
2023년 8월 3일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기