츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 15720번 카우버거 파이썬(Python)
1) 문제번호 : 15720번
2) 문제 출처
https://www.acmicpc.net/problem/15720
2. 문제
윤진이는 이번에 카우버거 알바생으로 뽑히게 되었다. 그녀는 카우버거를 평소에 이용하면서 들었던 의문점 한가지가 있었다.
"카우버거에는 왜 세트 메뉴에 대한 할인이 존재하지 않는가?"
따라서 윤진이의 아이디어로 카우버거에 세트 할인을 도입하고자 한다. 세트 메뉴는 버거 1개, 사이드 메뉴 1개, 음료 1개를 선택 할 경우 각각의 제품에 대해서 10%의 세트 할인을 적용하는 방식으로 진행된다.
하지만 카우버거 점주는 POS기의 소프트웨어가 오래되어 세트 할인에 대한 내용을 추가할 수가 없었다. 따라서 소프트웨어학부에 재학 중인 윤진이는 전공을 살려 직접 프로그램을 만들어보려고 한다. 윤진이를 도와 POS기에 들어갈 세트 할인에 대한 프로그램을 작성해보자.
3. 제약사항
4. 입력
첫째 줄에는 주문한 버거의 개수 B, 사이드 메뉴의 개수 C, 음료의 개수 D가 공백을 사이에 두고 순서대로 주어진다. (1 ≤ B, C, D ≤ 1,000)
둘째 줄에는 각 버거의 가격이 공백을 사이에 두고 주어진다.
셋째 줄에는 각 사이드 메뉴의 가격이 공백을 사이에 두고 주어진다.
넷째 줄에는 각 음료의 가격이 공백을 사이에 두고 주어진다.
각 메뉴의 가격은 100의 배수이며, 10000원을 넘지 않는다.
5. 출력
첫째 줄에는 세트 할인이 적용되기 전 가격을 출력한다.
둘째 줄에는 세트 할인이 적용된 후의 최소 가격을 출력한다.
6. 풀이
- 버거, 사이드, 음료를 리스트로 받아 내림차순으로 정렬한다.
- 전체 가격을 먼저 구해놓는다.
- 정렬된 리스트 중에서 리스트의 크기가 가장 작은 애의 값을 구한다.
- 그래야 최소 세트 개수를 구할 수 있다.
- 최소 세트 개수만큼 할인된 가격을 Cost에 더하고, pop을 해준다.
- 그리고, 각 리스트에 리스트의 크기만큼 Cost에 더해주고 출력하면 된다.
7. 소스 코드
import sys
input=sys.stdin.readline
B, C, D = map(int, input().split()) # 버거의 개수 B, 사이드 메뉴의 개수 C, 음료의 개수 D
#버거, 사이드, 음료 내림차순으로 정렬
burger = sorted(list(map(int, input().split())), reverse=True)
side = sorted(list(map(int, input().split())), reverse=True)
beverage = sorted(list(map(int, input().split())), reverse=True)
# 전체 가격
totalCost = sum(burger) + sum(side) + sum(beverage)
# 최소 세트 개수
minValue = min(len(burger), min(len(side), len(beverage)))
#세일 가격
Cost = 0
# 최소 세트 개수만큼 할인된 가격을 Cost에 더하고, pop 하기
for _ in range(minValue) :
Cost += (burger[0] + side[0] + beverage[0]) * 0.9
burger.pop(0)
side.pop(0)
beverage.pop(0)
# 처음부터 burger 리스트에 남은 개수만큼 Cost에 더하기
for i in range(len(burger)) :
Cost += burger[i]
# 처음부터 side 리스트에 남은 개수만큼 Cost에 더하기
for i in range(len(side)) :
Cost += side[i]
# 처음부터 beverage 리스트에 남은 개수만큼 Cost에 더하기
for i in range(len(beverage)) :
Cost += beverage[i]
#출력
print(totalCost)
print(int(Cost))
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 16922번 로마 숫자 만들기 파이썬(Python) (0) | 2021.06.15 |
---|---|
[백준 알고리즘] 백준 14248번 점프 점프 파이썬(Python) (0) | 2021.06.12 |
[백준 알고리즘] 백준 11725번 트리의 부모 찾기 파이썬(Python) (0) | 2021.06.12 |
[백준 알고리즘] 백준 3184번 양 파이썬(Python) (0) | 2021.06.12 |
[백준 알고리즘] 백준 6996번 애너그램 파이썬(Python) (0) | 2021.06.11 |
[백준 알고리즘] 백준 5576번 콘테스트 파이썬(Python) (0) | 2021.06.11 |
[백준 알고리즘] 백준 3187번 양치기 꿍 파이썬(Python) (0) | 2021.06.11 |
[백준 알고리즘] 백준 9372번 상근이의 여행 파이썬(Python) (0) | 2021.06.11 |
최근댓글