변경이력

돌아가기
6 17개 문자 삭제

2014/12/28 06:37

투플러스

책의 숫자만큼 바구니를 만들고 한계비용을 최소화하는 바구니에 책을 넣는 방법으로 만들었습니다. ```{.python} import copy def price(books): baskets = [] for book in books: marginalcost = [] for basket in baskets: temp_basket = copy.deepcopy(basket) temp_basket.add(book) marginalcost.append(calc(temp_basket) - calc(basket)) try: minvalue = min([x for x in marginalcost if x]) baskets[marginalcost.index(minvalue)].add(book) except: baskets.append({book}) return sum([calc(x) for x in baskets]) def calc(bookset): DISCOUNT_RATE = (1, 1, 0.95, 0.9, 0.8, 0.75) if not bookset: return 0 else: return len(bookset) * 8 * DISCOUNT_RATE[len(bookset)] ```
책의 숫자만큼 바구니를 만들고 한계비용을 최소화하는 바구니에 책을 넣는 방법으로 만들었습니다. ```{.python} import copy def price(books): baskets = [] for book in books: marginalcost = [] for basket in baskets: temp_basket = copy.deepcopy(basket) temp_basket.add(book) marginalcost.append(calc(temp_basket) - calc(basket)) try: minvalue = min([x for x in marginalcost if x]) baskets[marginalcost.index(minvalue)].add(book) except: baskets.append({book}) return sum([calc(x) for x in baskets]) def calc(bookset): DISCOUNT_RATE = (1, 1, 0.95, 0.9, 0.8, 0.75) if not bookset: return 0 else: return len(bookset) * 8 * DISCOUNT_RATE[len(bookset)] ```
5 187개 문자 추가 51개 문자 삭제

2014/12/28 06:28

투플러스

4 20개 문자 삭제

2014/12/28 06:27

투플러스

3 211개 문자 추가 300개 문자 삭제

2014/12/28 06:27

투플러스

2 84개 문자 삭제

2014/12/28 06:07

투플러스

1 Original

2014/12/28 05:59

투플러스

코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.