[C++]백준4796번 캠핑
오늘은 백준4796번 캠핑 문제를 풀어보도록 하자.
그리디로 쉬운 편에 속하는 문제이다.
문제는 다음과 같다.
[접근법]
1. L<P<V 이므로 V를 P로 나눈 것을 L과 곱하면 주기적인 값을 구할 수 있다.
2. V를 P로 나눈 나머지 값이 L보다 큰지 작은지에 따라 temp_P가 L인지 V % P인지 선택할 수 있다.
[코드]
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int L, P, V, temp_P, Num = 1;
while (1) {
cin >> L >> P >> V;
if (L == 0 && P == 0 && V == 0) {
break;
}
if (V%P <= L) {
temp_P = V % P;
}
else {
temp_P = L;
}
P = V / P;
cout << "Case " << Num << ":" << " " << L * P + temp_P<< '\n';
Num++;
}
return 0;
}