# https://www.acmicpc.net/problem/15686
from itertools import combinations
n, m = map(int, input().split())
data = []
for i in range(n):
data.append(list(map(int, input().split())))
two = []
one = []
for i in range(n):
for j in range(n):
if data[i][j] == 2:
two.append([i, j])
if data[i][j] == 1:
one.append([i, j])
chicken = list(combinations(two, m))
result = [0] * len(chicken)
for i in one:
for j in range(len(chicken)):
a = 100
for k in chicken[j]:
temp = abs(k[0] - i[0]) + abs(k[1] - i[1])
a = min(a, temp)
result[j] += a
print(min(result))
1 집 2 치킨 좌표를 따로 받음
combinations(two, m) 치킨집중 m 개 조합
아무리 봐도 모르겠음...
# https://www.acmicpc.net/problem/10773
n = int(input())
data = []
for i in range(n):
a = int(input())
if a == 0:
data.pop()
else:
data.append(a)
print(sum(data))
실버4인데 아마 다른 언어는 스택을 구현해서 어려운건가..?
파이썬은 스택이 list로 내장함수가 존재해 편하게 풀었다.
안녕하세요! 😊입니다. 저도 자물쇠와 열쇠 문제 진짜 안읽어지고 잘 모르겠어서 답답했습니다,, 그래도 치킨 문제 조합을 이용해 잘 풀어내셨네요! 오늘도 정말 수고 많으셨습니다