문제
현진 치킨에서 판매하는 치킨은 양념 치킨, 후라이드 치킨, 반반 치킨으로 총 세 종류이다. 반반 치킨은 절반은 양념
치킨, 절반은 후라이드 치킨으로 이루어져있다. 양념 치킨 한 마리의 가격은 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마리를 구매하는 것이 최소이다.
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : '../input.txt';
const input = fs.readFileSync(filePath).toString().split(' ');
/*
양념치킨 A원, 후라이드 치킨 B원, 반반 치킨 C원
양념치킨 X마리, 후라이드 치킨 Y마리
반반치킨 2마리로 양념 1마리, 후라이드 1마리 가능
구매 금액의 최솟값은?
*/
function solution(testCase) {
// 문자열로 된 item들을 number로 치환
testCase = testCase.map(item => +item);
let [a, b, c, x, y] = testCase;
let result = 0;
const min = Math.min(x, y);
// 후라이드 한마리 + 양념 한마리보다 반반 2개가 저렴할때
if(a+b > c*2) {
result += min * (c*2);
x -= min;
y -= min;
}
// 반반 두마리에서 후라이드나 양념만 먹는다 하더라도,
// 후라이드 한마리나 양념 한마리보다 더 저렴할 수가 있다.
result += (x*Math.min(a, c*2) + y*Math.min(b, c*2));
console.log(result);
}
solution(input);
'PS > 백준' 카테고리의 다른 글
백준 / Graph - Kruskal / 1922번 / 네트워크 연결 / JS (0) | 2022.05.07 |
---|---|
백준 / 최단경로 - Floyd Warshall / 11403번 / 경로 찾기 / JS (0) | 2022.04.25 |
백준 / 브루트포스 / 16968번 / 차량 번호판 1 / JS (0) | 2022.04.24 |
백준 / DP(Dynamic Programming) / 14501번 / 퇴사 / Python (0) | 2022.03.13 |