Algorithm/python 백준
파이썬 백준 15686번 : 치킨 배달
✿(๑❛ڡ❛๑)✿
2024. 6. 4. 16:44
728x90
SMALL
문제
https://www.acmicpc.net/problem/15686
🍗풀이
N,M의 범위가 작아 브루트포스로 모든 경우의 수를 고려했다.
import sys
from itertools import combinations
N,M=map(int,sys.stdin.readline().split())
home=[]
chicken=[]
for i in range(N):
temp=list(map(int,sys.stdin.readline().split()))
for j in range(N):
if temp[j]==1:
home.append((i,j))
if temp[j]==2:
chicken.append((i,j))
combs=list(combinations(chicken,M)) #만들수 있는 모든 치킨집 조합 저장
chicken_distance=[]
answer=10000
for comb in combs:
chicken_distance = []
for i in range(len(home)):
distance = 10000
for c in comb:
result= abs(c[0]-home[i][0])+abs(c[1]-home[i][1])
distance=min(distance,result)
chicken_distance.append(distance)
answer=min(answer,sum(chicken_distance))
print(answer)
728x90
LIST