Algorithm/SW 역량테스트 기출
[백준] 치킨배달 15686 (브루트포스) Python
hackyu
2019. 10. 20. 05:00
집 리스트, 치킨집 리스트를 구하고 주어진 M(도시에 있을 수 있는 최대의 치킨집 수)에 따라 치킨집을 조합한다.
조합된 치킨집 리스트에 따라 각 집별의 치킨거리를 구한다. (각 조합별의 치킨거리의 합)
조합별 집과의 치킨거리의 합을 구한 것 중 최소 값을 구한다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import itertools
n,m = map(int, input().strip().split())
lists = []
home = []
chicken = []
for i in range(n):
lists.append(list(map(int, input().strip().split())))
for i in range(n):
for j in range(n):
if lists[i][j] == 1:
if lists[i][j] == 2:
chicken_list = list(itertools.combinations(chicken, m))
answer = []
for i in chicken_list:
total = 0
for h in home:
minn = 10000000
for j in i:
minn = min(minn, abs(j[0] - h[0]) + abs(j[1] - h[1]))
total += minn
print(min(answer))
|
|