택배 마스터 광우

2021. 9. 28. 21:49Algorithm

    목차
반응형

brute force algorithm ...

N, M, K = map(int, sys.stdin.readline().split())
lines = list(map(int, sys.stdin.readline().split()))


def get_sum(lines, K):
    cur = 0
    idx = 0
    tot = 0

    while K:
        inc = 0
        while cur + lines[idx] <= M:
            cur += lines[idx]
            inc += lines[idx]
            idx = (idx + 1)%len(lines)

        tot += inc
        cur = 0
        K -= 1

    return tot


seqs = []

def dfs(seq, sel, seqs):
    if len(sel) == N:
        seqs += seq,
        return

    for i in range(N):
        if i in sel:
            continue

        dfs(seq + [lines[i]], sel + [i], seqs)

dfs([], [], seqs)

mn = float('inf')
for seq in seqs:
    mn = min(mn, get_sum(seq, K))

print(mn)

 

반응형

'Algorithm' 카테고리의 다른 글

GBC  (0) 2021.09.28
장애물 인식 프로그램  (0) 2021.09.28
차세대 지능형 교통시스템  (0) 2021.09.28
2008. Maximum Earnings From Taxi (Medium)  (0) 2021.09.21
2006. Count Number of Pairs With Absolute Difference K  (0) 2021.09.21