728x90
반응형
문제 링크
https://www.acmicpc.net/problem/15720
풀이
b,c,d = map(int, input().split())
burgers = sorted(list(map(int, input().split())), reverse=True)
sidemenus = sorted(list(map(int, input().split())), reverse=True)
drinks = sorted(list(map(int,input().split())), reverse=True)
beforeDiscount = sum(burgers) + sum(sidemenus) + sum(drinks)
print(beforeDiscount)
min_num = min(b,c,d)
cost = 0
for _ in range(min_num):
cost += (burgers[0]+sidemenus[0]+drinks[0]) * 0.9
burgers.pop(0)
sidemenus.pop(0)
drinks.pop(0)
noDiscount = sum(burgers) + sum(sidemenus) + sum(drinks)
totalCost = cost + noDiscount
print(int(totalCost))
- 각각 메뉴의 가격을 받을 때 내림차순으로 정렬하여 할인할 수 있는 세트의 수만큼 반복을 통해 할인을 적용했습니다.
- 할인을 적용한 항목들은 리스트에서 제거한 후, 할인 없이 계산할 항목들은 세트 할인 적용 후 전부 더했습니다.
- 마지막으로 전부 더하여 할인 후 가격을 계산했습니다.
728x90
반응형
'알고리즘 정복하기! > 백준 문제풀이' 카테고리의 다른 글
백준 10818번 Python / Math (0) | 2022.02.08 |
---|---|
백준 2577번 Python / Math (0) | 2022.02.08 |
백준 11034번 Python / Greedy (0) | 2022.01.30 |
백준 2810번 Python / Greedy (0) | 2022.01.30 |
백준 1052번 Python / Greedy (0) | 2022.01.27 |
댓글