※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 2520번 문제인 팬케이크 사랑이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/2520
2520번: 팬케이크 사랑
첫 번째 테스트 케이스에서 주어진 재료를 가지고 바나나 팬케익 10개, 딸기 팬케익 1개, 초콜릿 팬케익 4개, 호두 팬케익 1개를 만들 수 있다. 두 번째 테스트 케이스에서 주어진 재료 중 밀
www.acmicpc.net
주어지는 팬케이크 재료들의 양을 읽고 이 재료들로 만들 수 있는 팬케이크 양의 최댓값을 구하는 문제이다.
(주어진 반죽재료로 만들 수 있는 반죽으로 만들 수 있는 팬케이크의 개수)와 (주어진 토핑재료로 토핑할 수 있는 팬케이크의 개수) 두 값의 최솟값이 문제의 답이 됨을 관찰하자.
반죽의 경우 각 반죽재료가 팬케이크 몇 개 분량인지를 계산해 그 최솟값을 구하는 것으로, 토핑의 경우 각 토핑 종류별로 토핑할 수 있는 팬케이크의 개수를 합하는 것으로 위의 식에 필요한 개수를 계산할 수 있다. 이는 비례관계와 사칙연산을 이용해 계산해낼 수 있다.
위 내용을 구현해 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int T;
int milk, yolk, sugar, salt, flour, banana, jam, choco, walnut;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> T;
while (T--) {
cin >> milk >> yolk >> sugar >> salt >> flour >> banana >> jam >> choco >> walnut;
int val1 = min(milk * 2, min(yolk * 2, min(sugar * 4, min(salt * 16, flour * 16 / 9))));
int val2 = banana + jam / 30 + choco / 25 + walnut / 10;
cout << min(val1, val2) << '\n';
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 9461 // C++] 파도반 수열 (0) | 2023.02.09 |
---|---|
[BOJ 25905 // C++] 장인은 도구를 탓하지 않는다 (0) | 2023.02.09 |
[BOJ 1092 // C++] 배 (0) | 2023.02.08 |
[BOJ 11522 // C++] Sum Kind of Problem (0) | 2023.02.07 |
[BOJ 27433 // C++] 팩토리얼 2 (0) | 2023.02.07 |