일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 청년 Ai Big Data 아카데미
- 최소 스패닝 트리
- docker 완전 삭제
- 코드업 1020 java
- 가운데 글자 가져오기 python
- 가운데 글자 가져오기 java
- codeup 1020 자바
- m1 docker
- 가운데 글자 가져오기 자바
- 프로그래머스 가운데 글자 가져오기 자바
- 나누어 떨어지는 숫자 배열 python
- 나누어 떨어지는 숫자 배열 java
- 프로그래머스 나누어 떨어지는 숫자 배열 파이썬
- 코드업 1020 자바
- 청년 AI Big Data 아카데미 13기
- 트리의 지름 자바
- 프로그래머스 가운데 글자 가져오기 python
- 핸즈온 머신러닝
- 프로그래머스 나누어 떨어지는 숫자 배열 자바
- codeup 1020 java
- 가운데 글자 가져오기 파이썬
- 트리의 지름 java
- 최단 경로 알고리즘
- docker remove
- 최소 스패닝 트리 자바
- m1 docker install
- 빅데이터분석기사
- 프로그래머스 가운데 글자 가져오기 파이썬
- docker 삭제
- 빅분기실기
- Today
- Total
NineTwo meet you
[백준/자바] 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 | 예제 출력 1 |
1500 2000 1600 3 2 | 7900 |
반반 치킨 4마리를 구매해서, 양념 치킨 2마리와 후라이드 치킨 2마리를 만들고, 양념 치킨 1마리를 구매하는 것이 최소이다.
예제 입력 2 | 예제 출력 2 |
1500 2000 1900 3 2 | 8500 |
예제 입력 3 | 예제 출력 3 |
1500 2000 500 90000 100000 | 100000000 |
설명
양념 치킨 가격 A원, 후라이드 치킨 가격은 B원, 반반 치킨 가격은 C원, 양념 치킨 최소 X마리, 후라이드 치킨 최소 Y마리
순서로 입력이 주어진다.
X와 Y는 각각 최소의 개수이므로 더 사도 상관없다.
1) X와 Y 중 더 작은 수를 구한다.
2) 2*c와 a+b를 비교해 반반을 두 개 살 건지 각각 한 마리를 살 건지 정한다.
3) 1)에서 구한 개수만큼의 치킨을 2)의 방식으로 구한다.
4) 남는 치킨의 경우 더 사도 상관없으니 반반을 두 개 사서 한 마리를 만들 것인지 한 마리를 살 건지 정한다.
예제 입력 3을 이용해보자.
양념 가격 : 1500
후라이드 가격 : 2000
반반 가격 : 500
양념 최소 개수 : 90000
후라이드 최소 개수 : 100000
1) 양념과 후라이드 개수를 비교하면 90000인 양념이 더 적다.
2) 2*c와 a+b를 비교해보면 1000 < 1500 + 2000 = 3700으로 각각 한 마리를 사는 것보다 반반을 두 마리 사는 것이 저렴한 것을 확인할 수 있다.
3)
따라서 500 => 양념 1/2 + 후라이드 1/2
1000 => 양념 1 + 후라이드 1 이 된다.
양념과 후라이드 각각 최소 개수인 90000마리를 사기 위해서는 90000*1000 = 90000000가 필요하다.
4) 여기까지 보면 양념은 다 구매했지만 후라이드는 100000 - 90000 = 10000마리가 부족하다.
따라서 남은 후라이드 10000마리를 반반으로 1마리를 만들어서 살지 후라이드만 살지 정해야 한다.
반반으로 구매하면 500*2 = 1000 => 양념 1 + 후라이드 1 이기 때문에 10000*1000 = 10000000이 필요하지만
후라이드만 구매한다면 10000*2000 = 20000000으로 더 많은 비용이 필요하게 된다.
따라서 양념을 더 구매하지만 반반으로 한 마리를 채우는 게 더 저렴한 것을 확인할 수 있으므로 최종적으로
3)과 4)을 합친 가격인
90000000 + 10000000 = 100000000이 최소비용이다.
코드
'프로그래밍 문제 > 백준' 카테고리의 다른 글
[백준/자바] 12904 A와 B (0) | 2020.12.24 |
---|---|
[백준/자바] 2875 대회 or 인턴 (0) | 2020.12.24 |
[백준/자바] 16968 차량 번호판 1 (0) | 2020.12.22 |
[백준/자바] 20055 컨베이어 벨트 위의 로봇 (0) | 2020.11.10 |
[백준/자바] 19238 스타트 택시 (0) | 2020.11.10 |