[알고리즘] 그리디 - 배낭 문제 (Python)
문제 설명 배낭에 담을 수 있는 무게의 최댓값이 정해져있고, 각각의 짐의 가치($ 단위)와 무게(kg 단위)가 있는 짐들을 배낭에 넣을 때 가치의 합이 최대가 되도록, 즉 $(달러)의 가치가 최대가 되도록 짐을 고르는 방법을 찾기 입출력 예 Input: cargo = [ (4, 12), (2, 1), (10, 4), (1, 1), (2, 2), ] Output: 17.333333333333332 Code def fractional_knapsack(cargo): capacity = 15 pack = [] # 단가 계산 역순 정렬 for c in cargo: pack.append((c[0] / c[1], c[0], c[1])) pack.sort(reverse = True) # 단가 순 그리디 계산 total..
더보기