https://www.acmicpc.net/problem/16917
문제에서 주어지는 입력 값은 양념치킨 값, 후라이드 치킨 값, 반반 치킨 값, 만들어야 할 양념치킨, 후라이드 치킨의 개수이다.
이 문제에서 신경 써야 할 부분은 반반 치킨이다. 반반 치킨을 기준으로 완전탐색(브루트 포스)을 하여 최소 금액을 구할 수 있게 됩니다.
<코드>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
int a,b,c,x,y;
cin>>a>>b>>c>>x>>y;
int ans = 2100000000;
for(int i=0;i<=200000;i++)
{
ans = min(ans, (2*i*c + max(x-i,0)*a + max(y-i,0)*b));
}
cout<<ans<<'\n';
}
문제에서 살 수 있는 양념, 후라이드 치킨의 개수는 각각 10만 개입니다. 즉, 반반치킨은 최대 20만 개 살 수 있고, 반반치킨을 사지 않은 것에서부터 20만 개 사는 것까지 for문을 돌려서 최솟값을 구할 수 있습니다.
'PS > 브루트포스 알고리즘[Bruteforce]' 카테고리의 다른 글
백준 16936 나3곱2(c++) (0) | 2023.01.23 |
---|---|
백준 16922 로마 숫자 만들기(c++) (0) | 2023.01.22 |
백준 2503 숫자 야구(c++) (0) | 2022.10.19 |
백준 1526 가장 큰 금민수(c++) (0) | 2022.10.19 |
백준 2303 숫자 게임(c++) (0) | 2022.10.15 |