프로그래밍/백준

[알고리즘] 백준 15720 파이썬 - 카우버거

매 석 2023. 3. 27. 21:11
반응형

 

 

15720번: 카우버거

첫째 줄에는 주문한 버거의 개수 B, 사이드 메뉴의 개수 C, 음료의 개수 D가 공백을 사이에 두고 순서대로 주어진다. (1 ≤ B, C, D ≤ 1,000) 둘째 줄에는 각 버거의 가격이 공백을 사이에 두고 주어진

www.acmicpc.net

문제

윤진이는 이번에 카우버거 알바생으로 뽑히게 되었다. 그녀는 카우버거를 평소에 이용하면서 들었던 의문점 한가지가 있었다.

"카우버거에는 왜 세트 메뉴에 대한 할인이 존재하지 않는가?"

따라서 윤진이의 아이디어로 카우버거에 세트 할인을 도입하고자 한다. 세트 메뉴는 버거 1개, 사이드 메뉴 1개, 음료 1개를 선택 할 경우 각각의 제품에 대해서 10%의 세트 할인을 적용하는 방식으로 진행된다.

하지만 카우버거 점주는 POS기의 소프트웨어가 오래되어 세트 할인에 대한 내용을 추가할 수가 없었다. 따라서 소프트웨어학부에 재학 중인 윤진이는 전공을 살려 직접 프로그램을 만들어보려고 한다. 윤진이를 도와 POS기에 들어갈 세트 할인에 대한 프로그램을 작성해보자.

 

문제풀이

b,c,d=map(int,input().split())
#01
x=min(b,c,d)
B=list(map(int,input().split()))
B.sort(reverse=True)
C=list(map(int,input().split()))
C.sort(reverse=True)
D=list(map(int,input().split()))
D.sort(reverse=True)
#02
ans=sum(B)+sum(C)+sum(D)
tmp=0
for i in range(x):
    tmp+=B[i]+C[i]+D[i]
#03
print(ans)
print(ans-int(tmp*0.1))

- #01 : x에는 b,c,d 중에 가장 작은 값 즉 완성할 수 있는 세트의 개수를 저장한다.

          이후 각각의 가격을 B,C,D 리스트에 저장하고 내림차순 정렬한다.

- #02 : ans에는 B,C,D의 합 즉 전체 가격을 저장한다.

           for문을 통해 tmp 즉 세트를 완성할 수 있는 가격을 저장한다.

- #03 : ans를 출력 후 tmp에서 할인받은 10% 가격을 뺀 값을 출력한다.

 

+tmp값에는 세트를 만들 수 있는 금액이 저장되는 것이다.

EX) 햄버거 : 5400,2800 콜라 : 2600 사이드 : 1700 -> 1세트만 완성 가능함 

       tmp = 5400+2600+1700