본문 바로가기
코딩 테스트/구현

치킨 배달

by hazel_ 2021. 1. 22.

p.332

from itertools import combinations


N,M=map(int, input().split())

home=[]
chicken=[]

for i in range(N):
  data=list(map(int, input().split()))
  for j in range(len(data)):
    if data[j]==1: # 집
      home.append((i,j))
    elif data[j]==2: # 치킨집
      chicken.append((i,j))

candidates=list(combinations(chicken, M))

def get_sum(candidates):
  result=0

  for hx, hy in home:
    temp=1e9
    for cx,cy in candidates:
      temp=min(temp,abs(hx-cx)+abs(hy-cy))
    result+=temp
  return result

result=1e9
for candidate in candidates:
  result=min(result, get_sum(candidate))

print(result)

'코딩 테스트 > 구현' 카테고리의 다른 글

외벽 점검  (0) 2021.01.23
기둥과 보 설치  (0) 2021.01.20
  (0) 2021.01.19
자물쇠와 열쇠  (0) 2021.01.19
게임 개발  (0) 2021.01.19

댓글