※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 25935번 문제인 Lemonade Stand이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/25935
주어진 기간동안 레모네이드를 만들어 팔 때 재료를 구입하기 위해 사용해야하는 최소 비용을 구하는 문제이다.
k일차의 레모네이드를 만들 때 필요한 레몬의 구입가는 1일차부터 k일차까지 가운데 가장 레몬이 싼 날에 사두는 것으로 최소가 되게 할 수 있다. 이는 설탕도 마찬가지지만, 설탕의 사용 단위는 1온스이고 구입 단위는 5파운드(80온스)로 둘의 단위가 다른 점에 유의하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
void solve() {
int ans = 0;
int D, unitL, unitS; cin >> D >> unitL >> unitS;
int priceL = 1000000007, priceS = 1000000007;
int leftS = 0;
while (D--) {
int cups, pL, pS; cin >> cups >> pL >> pS;
priceL = min(priceL, pL);
ans += priceL * unitL * cups;
priceS = min(priceS, pS);
if (unitS * cups < leftS) leftS -= unitS * cups;
else {
int needS = unitS * cups - leftS;
if (needS % 80) {
ans += (needS / 80 + 1) * priceS;
leftS = 80 - needS % 80;
}
else {
ans += needS / 80 * priceS;
leftS = 0;
}
}
}
cout << ans << '\n';
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int T; cin >> T;
while (T--) solve();
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 25703 // C++] 포인터 공부 (0) | 2022.11.09 |
---|---|
[BOJ 25915 // C++] 연세여 사랑한다 (0) | 2022.11.08 |
[BOJ 25871 // C++] Historical TV Remote Control (0) | 2022.11.08 |
[BOJ 25904 // C++] 안녕 클레오파트라 세상에서 제일가는 포테이토칩 (0) | 2022.11.08 |
[BOJ 25841 // C++] Digit Count (0) | 2022.11.08 |