-
백준(BOJ) 16917번 양념 반 후라이드 반알고리즘 풀이/백준(Boj) 2019. 12. 8. 02:44
문제 : https://www.acmicpc.net/problem/16917
16917번: 양념 반 후라이드 반
현진 치킨에서 판매하는 치킨은 양념 치킨, 후라이드 치킨, 반반 치킨으로 총 세 종류이다. 반반 치킨은 절반은 양념 치킨, 절반은 후라이드 치킨으로 이루어져있다. 양념 치킨 한 마리의 가격은 A원, 후라이드 치킨 한 마리의 가격은 B원, 반반 치킨 한 마리의 가격은 C원이다. 상도는 오늘 파티를 위해 양념 치킨 최소 X마리, 후라이드 치킨 최소 Y마리를 구매하려고 한다. 반반 치킨을 두 마리 구입해 양념 치킨 하나와 후라이드 치킨 하나를 만드는 방법도 가
www.acmicpc.net
풀이 :
C 같은 경우는 0.5씩 빠지므로 아예 2*C를 하나에 경우의 수로 보자
2*C를 i번 샀다면 A번은 X-i번 B번은 Y-i번을 살 수 있다. A-i + B -i + 2* i = A + B
따라서 i를 0번부터 ( 양념 반 후라이드 반을 하나도 안 사는 경우) 최대 100000번
(양념 반 후라이드 반을 10만 마리 사는 경우 ) 경우의 수 사이에서 답을 찾아주자.
이때 X-i나 Y-i 가 마이너스가 될 때에는 수가 없는 경우이므로 0이다.
코드 ( C++ )
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters#include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; int A, B, C, X, Y; int main() { cin >> A >> B >> C >> X >> Y; int ans = 987654321; for (int i = 0; i <= 100000; ++i) { int c = 2 * C*i; int a = max(0, (X - i)*A); int b = max(0, (Y - i) *B); ans = min(ans, a+b+c); } cout << ans << "\n"; return 0; } '알고리즘 풀이 > 백준(Boj)' 카테고리의 다른 글
백준(BOJ) 17471번 게리맨더링 (0) 2019.12.15 백준(BOJ) 16922번 로마 숫자 만들기 (0) 2019.12.09 백준(BOJ) 16988번 Baaaaaaaaaduk2 (Easy) (0) 2019.12.02 백준(BOJ) 16935번 배열 돌리기 3 (0) 2019.12.01 백준(BOJ) 16987번 계란으로 계란치기 (0) 2019.11.30