[BOJ]白俊15686-唐揚げ出前
6461 ワード
👩🏻💻 質問する
👩🏻💻 正しいコード
from itertools import combinations
n, m = map(int, input().split())
chicken = []
house = []
for i in range(n):
s = input().split()
for j in range(n):
if s[j] == '1':
house.append((i, j))
elif s[j] == '2':
chicken.append((i, j))
result = []
for i in list(combinations(chicken, m)):
r = 0
for hy, hx in house:
dist = []
for cy, cx in i:
dist.append(abs(hy-cy)+abs(hx-cx))
r += min(dist)
result.append(r)
print(min(result))
最初はフライドチキン街が一番多いフライドチキン屋を残すべきだと思っていたのですが、そうすれば間違いかもしれないので探していたらitertoolsの組み合わせで重複しない組み合わせを求めていたのを見つけて、それぞれのケースで中minの価格を出せばいいのです.ライブラリを活用...Pythonを整理しますだから流れ.
for i in list(combinations(chicken, m))
フライドチキン屋さんの中m
組み合わせがあれば数を繰り返し尋ねることができるdist
リストに保存min
都会のチキン街に値段を加算r
r
加えresult
リストm
個セットのフライドチキン距離中min
プリント価格👩🏻💻 Remember
from itertools import combinations
for i in list(combinations(chicken, m)):
...
for cy, cx in i:
# m개의 치킨집 조합의 각 치킨집 좌표 반복
しっかりライブラリを背負って積極的に使用!!Reference
この問題について([BOJ]白俊15686-唐揚げ出前), 我々は、より多くの情報をここで見つけました https://velog.io/@dazzlynn/BOJ-백준-15686-치킨-배달テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol