황소개발자

백준 15686 파이썬 python : 치킨 배달 @@황소처럼 우직하게@@ 치킨 먹고싶어 본문

백준 문제 풀이

백준 15686 파이썬 python : 치킨 배달 @@황소처럼 우직하게@@ 치킨 먹고싶어

hjp845 2020. 4. 23. 14:03
반응형

2 의 13승은 작은 숫자 베이베

import sys
import itertools
input = sys.stdin.readline

n, m = map(int, input().split())
mat = []
for i in range(n):
    mat.append(list(map(int, input().split())))

homes = []
chickens = []
for i in range(n):
    for j in range(n):
        if mat[i][j] == 1:
            homes.append([i, j])
        elif mat[i][j] == 2:
            chickens.append([i, j])

combi = [i for i in range(len(chickens))]
combi = list(itertools.combinations(combi, m))

# print(combi)

ans = 999999999
for case in combi:
    dist = [999999999 for i in range(len(homes))]
    for i in case: # 치킨 번호
        for j in range(len(homes)):
            dist[j] = min(dist[j], abs(homes[j][0] - chickens[i][0]) + abs(homes[j][1] - chickens[i][1]))
    ans = min(ans, sum(dist))

print(ans)

 

반응형
Comments