num = int(input())
money = []
for i in range(num):
tem = list(map(int,input().split()))
money.append(tem)
lit = []
ans = 10**8
def permu(visited,k):
global ans
if k == num:
temnum =0
lit.append(visited)
tem = visited
for j in range(num - 1):
if money[tem[j] - 1][tem[j + 1] - 1] == 0:
temnum =0
break
temnum += money[tem[j] - 1][tem[j + 1] - 1]
if money[-1][tem[0]] == 0:
temnum = 0
else:
temnum += money[tem[-1] - 1][tem[0] - 1]
if ans > temnum:
ans = temnum
else:
for i in range(1,num+1):
if i not in visited:
permu(visited+[i],k+1)
permu([],0)
print(ans)
https://statssy.github.io/pro/2019/09/06/baekjoon_10971/
이 코드와 비교해서 내 코드가 왜 시간초과가 나는지 아직 모르겠다..
'Data Science > 알고리즘 공부' 카테고리의 다른 글
[백준][파이썬] 3055번 탈출 -BFS (0) | 2020.04.07 |
---|---|
[백준][알고리즘] 14888 연산자 끼워넣기 (0) | 2020.04.06 |
[백준][파이썬] 10974 모든 순열 (0) | 2020.04.05 |
[백준][파이썬] 10973 이전순열 (0) | 2020.04.02 |
[백준][파이썬] 7569 토마토(2) - 3차원 (0) | 2020.04.01 |
댓글