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
'코테공부 > python 백준' 카테고리의 다른 글
파이썬 백준 17825번 : 주사위 윷놀이 (0) | 2024.08.14 |
---|---|
파이썬 백준 14891번: 톱니바퀴 (0) | 2024.06.05 |
파이썬 백준 22856번 : 트리 순회 (0) | 2024.06.04 |
파이썬 백준 1707번 : 이분 그래프 (0) | 2024.05.30 |
파이썬 백준 14499번 : 주사위 굴리기 (0) | 2024.05.29 |