백준 python 기록
백준 10971 파이썬 외판원 순환2
작지
2021. 10. 14. 20:59
백준 링크:https://www.acmicpc.net/problem/10971
10971번: 외판원 순회 2
첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j
www.acmicpc.net

DFS 브루트포스로 해결했음. PYPY로 제출함.
import sys
n=int(input())
s=[list(map(int,sys.stdin.readline().split())) for i in range(n)]
min_value = sys.maxsize
visited=[False for _ in range(n)]
def dfs(start,cur,cost):
global s, visited, min_value
if start == cur and visited.count(False) == 0:
min_value = min(min_value,cost)
for i in range(n):
if not s[cur][i] == 0 and not visited[i]:
visited[i] = True
dfs(start,i,cost+s[cur][i])
visited[i] = False
dfs(0,0,0)
print(min_value)