Baekjoon

[BOJ / 백준] 16917번 양념 반 후라이드 반 파이썬(Python) 문제 풀이

728x90

 

문제

 

문제 링크 : https://www.acmicpc.net/problem/16917

 

16917번: 양념 반 후라이드 반

현진 치킨에서 판매하는 치킨은 양념 치킨, 후라이드 치킨, 반반 치킨으로 총 세 종류이다. 반반 치킨은 절반은 양념 치킨, 절반은 후라이드 치킨으로 이루어져있다. 양념 치킨 한 마리의 가격은

www.acmicpc.net

 

 

 

 

 

CODE

a, b, c, x, y = map(int, input().split())

if a + b < 2 * c:
    print(a * x + b * y)
else:
    print(2 * c * min(x, y) + min(a, 2 * c) * max(0, x - y) + min(b, 2 * c) * max(0, y - x))

 

 

 

 

풀이

후라이드와 양념을 각각 한마리씩 사는 것보다 반반으로 두마리를 사는 것이 비싼 경우, 그냥 각각 구매!

그렇지 않다면, 후라이드와 양념 중 적은 종류의 수만큼 전부 반반으로 사고, 남은 수를 따로 구매한다

 

처음에는 다음과 같이 구현했지만

print(2 * c * min(x, y) + a * max(0, x - y) + b * max(0, y - x))

 

예제 입력 3을 돌려봤을 때, ((2 * 500 * 90000) + 2000 * 10000) = 110000000 으로 오답이 나옵니다ㅠㅠ

이 경우는 반반 두마리가 양념치킨 한마리보다 싸기 때문에!

양념치킨을 따로 구매하지 않고 전부 반반치킨으로 구매하게 됩니다

 

X, Y마리 만큼 정확하게 구매하는 것이 아니라, 최소 X, Y마리를 구매하는 것이기 때문에

이를 고려하여 다음과 같이 코드를 변경하였습니다

print(2 * c * min(x, y) + min(a, 2 * c) * max(0, x - y) + min(b, 2 * c) * max(0, y - x))

 

 

 

 

결과

 

 

728x90