본문 바로가기
Data Science/알고리즘 공부

[백준][파이썬] 10971 원판원 순회2 - 시간초과..

by titaniumm 2020. 4. 6.
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/

 

[백준 문제] 10971번 외판원 순회2 (파이썬)

[백준 문제] 10971번 외판원 순회2 (파이썬)

statssy.github.io

이 코드와 비교해서 내 코드가 왜 시간초과가 나는지 아직 모르겠다..

댓글