728x90
주어진 도시의 개수가 작은 걸 보고 순열로 풀었다. 마지막 -> 처음 을 고려해주어야 한다.
import sys
from itertools import permutations
def check(list,k):
answer = 0
# list = [0,1,2,3]
if k[list[-1]][list[0]] == 0:
return 100000000000
else:
answer += k[list[-1]][list[0]]
for i in range(0,len(list)-1):
start = list[i]
end = list[i+1]
if k[start][end] == 0:
return 100000000000
else:
answer += k[start][end]
return answer
num = int(input())
city = [ ]
for i in range(0,num):
city.append(i)
k = [ ]
for i in range(num):
k.append(list(map(int,input().split(" "))))
temp = list(permutations(city))
answer = 100000000000
for i in range(0,len(temp)):
if check(list(temp[i]),k) < answer:
answer = check(temp[i],k)
print(answer)
728x90
'🟢 알고리즘 문제 풀이 > Baekjoon' 카테고리의 다른 글
| [파이썬] 백준 1759 암호 만들기 (0) | 2023.06.19 |
|---|---|
| [파이썬] 백준 14501 퇴사 (0) | 2023.06.19 |
| [파이썬] 백준 9095 1, 2, 3 더하기 (0) | 2023.06.12 |
| [파이썬] 백준 3085 사탕 게임 (0) | 2023.06.12 |
| [파이썬] 백준 10799 쇠막대기 (0) | 2023.05.28 |