택배 마스터 광우

발자·2023년 5월 11일
0

Softeer

목록 보기
13/17

문제

import itertools

# 레일의 개수 N, 택배 바구니의 무게 M, 일의 시행 횟수 K
N, M, K = map(int, input().split())

# Ni개의 택배 레일의 전용 무게
rail = list(map(int, input().split()))

# 순열
permu = list(itertools.permutations(rail))

# 최소한의 택배 무게 초기값
min_result = max(rail)*M*K
for per in permu:
    # 전체 택배 무게
    result = 0
    # 시행
    k = 0
    # 택배 바구니 무게
    m = 0
    # 레일
    n = 0

    while k < K:
        # 택배 바구니 무게(M)를 넘어가기 전까지 택배 바구니에 택배를 담기기
        if m + per[n] <= M:
            m += per[n]
            n = (n + 1) % N
        # 바구니 무게 초과
        else:
            result += m
            m = 0
            k += 1
    min_result = min(min_result, result)

print(min_result)

🧩 순열과 조합

0개의 댓글