[Alogorithm] D-10 구현

Jifrozen·2021년 7월 8일
1

Algorithm

목록 보기
16/70

치킨문제

# 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로 내장함수가 존재해 편하게 풀었다.

2개의 댓글

comment-user-thumbnail
2021년 7월 8일

안녕하세요! 😊입니다. 저도 자물쇠와 열쇠 문제 진짜 안읽어지고 잘 모르겠어서 답답했습니다,, 그래도 치킨 문제 조합을 이용해 잘 풀어내셨네요! 오늘도 정말 수고 많으셨습니다

답글 달기
comment-user-thumbnail
2021년 7월 9일

안녕하세요, 김덕우입니다! 저도 자물쇠와 열쇠 아무리 봐도 모르겠더라고요.. 어제 너무 고생하셨습니다. 오늘도 화이팅입니다!

답글 달기