문제
https://www.acmicpc.net/problem/3980
설계
- dfs를 들어가며 11명의 선수를 확인한다.
- 자리가 배치된 선수 번호를 visit 배열에 추가 및 삭제하며 한 번호당 한명씩만 들어가게 한다.
파이썬
def dfs(sumV, level):
global maxV, visit
if level == 11:
if maxV < sumV:
maxV = sumV
return
for i in range(11):
if arr[level][i] and i not in visit:
visit.append(i)
dfs(sumV + arr[level][i], level + 1)
visit.pop()
N = int(input())
for _ in range(N):
arr = [list(map(int, input().split())) for _ in range(11)]
maxV, visit = 0, []
dfs(0, 0)
print(maxV)
'PS (Problem Solving) > Baekjoon' 카테고리의 다른 글
[백준] 1032. 명령 프롬프트 - 파이썬 (0) | 2023.03.07 |
---|---|
[백준] 1283. 단축키 지정 - 파이썬 (0) | 2023.03.07 |
[백준] 2302. 극장 좌석 - 파이썬 (0) | 2023.03.02 |
[백준] 2304. 창고 다각형 - 파이썬 (0) | 2023.03.02 |
[백준] 1158. 요세푸스 문제 - 파이썬 (0) | 2023.02.28 |