백준 16917 양념 반 후라이드 반
문제
현진 치킨에서 판매하는 치킨은 양념 치킨, 후라이드 치킨, 반반 치킨으로 총 세 종류이다. 반반 치킨은 절반은 양념 치킨, 절반은 후라이드 치킨으로 이루어져있다. 양념 치킨 한 마리의 가격은 A원, 후라이드 치킨 한 마리의 가격은 B원, 반반 치킨 한 마리의 가격은 C원이다.
상도는 오늘 파티를 위해 양념 치킨 최소 X마리, 후라이드 치킨 최소 Y마리를 구매하려고 한다. 반반 치킨을 두 마리 구입해 양념 치킨 하나와 후라이드 치킨 하나를 만드는 방법도 가능하다. 상도가 치킨을 구매하는 금액의 최솟값을 구해보자.
입력
첫째 줄에 다섯 정수 A, B, C, X, Y가 주어진다.
출력
양념 치킨 최소 X마리, 후라이드 치킨 최소 Y마리를 구매하는 비용의 최솟값을 출력한다.
제한
1 ≤ A, B, C ≤ 5,000
1 ≤ X, Y ≤ 100,000
예제 입력 1
1500 2000 1600 3 2
예제 출력 1
7900
반반 치킨 4마리를 구매해서, 양념 치킨 2마리와 후라이드 치킨 2마리를 만들고, 양념 치킨 1마리를 구매하는 것이 최소이다.
예제 입력 2
1500 2000 1900 3 2
예제 출력 2
8500
예제 입력 3
1500 2000 500 90000 100000
예제 출력 3
100000000
풀이 과정
좀 까다로워 보이지만 쉽게 풀 수 있다.
반반 치킨을 2마리 사면 후라이드 한 마리, 양념 한 마리가 되는 것이 중요하다.
먼저 반반 치킨 두 마리를 사는 것이 후라이드 따로, 양념 따로 한 마리씩 사는 것보다 비싸면 반반 치킨 없이 그냥 후라이드 따로 양념 따로 사는 것이 이득이다.
반반 치킨 두 마리가 더 싸다면 후라이드, 양념 중에 요구 개수가 적은 것부터 반반 치킨으로 산다.
예를 들어 후라이드가 10마리가 필요하고 양념이 7마리가 필요하면, 반반 치킨은 한 마리에 후라이드 반, 양념 반이므로 반반 치킨을 14마리를 사야 양념 치킨의 요구 개수 7개를 충족할 수 있다.
이제 후라이드, 양념 둘 중에 하나는 다 채웠으면 남은 치킨은 반반 치킨으로 사야 저렴한지 단일 품목으로 사야 저렴한지 파악한다.
예를 들어, 후라이드 15마리, 양념 9마리였다면, 양념 9마리를 반반 치킨으로 해결하면, 후라이드도 9마리가 해결되므로, 남은 후라이드 6마리를 반반 값으로 사야 저렴한지 후라이드 값으로 사야 저렴한지 확인한다.
치킨의 개수는 초과되어도 상관없다.
코드
A, B, C, X, Y = map(int, input().split())
result = 0
if 2 * C > A + B: # 반반 치킨 두 마리가 한 마리씩 따로 사는 것보다 비싸면
result = A * X + B * Y # 각 치킨을 각 값 그대로 삼
else: # 반마리 치킨 두 마리가 각각 한 마리씩 사는 것보다 싸면
d = min(X, Y) # d는 양념, 후라이드 최소 필요 개수 중 작은 값
# 일단 작은 메뉴 개수만큼 반반 치킨으로 삼. 남은 후라이드나 양념을 반반 치킨으로 사야 싼지 따로 한 마리로 사야 싼지 비교하고 연산
result = (2 * C * d) + \
(min(2 * C, A) * max(0, X - d)) + \
(min(2 * C, B) * max(0, Y - d))
print(result)
Author And Source
이 문제에 관하여(백준 16917 양념 반 후라이드 반), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mynote/백준-16917-양념-반-후라이드-반저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)