반응형
그리디 알고리즘을 이용하여 푸는 문제로
총 휴가일 수에서 캠핑장을 이용하는 일수와 연속해서 이용하지 못하는 일의 수를 빼면서 계산하면 된다.
총 휴가일 수에서 캠핑장을 연속으로 이용하는 날의 수를 빼고 그 다음 이용하지 못하는 날을 뺀다.
그 다음 결과값에 캠핑장을 이용한 날을 더하고 총 휴가일의 수가 캠핑장을 이용할 수 있는 일자 보다 작아지면
while문을 나와 총 휴가일의 수가 음수면 더하지 않고 음수가 아니면 결과값에 남은 일의 수를 더한다.
#include<iostream>
using namespace std;
int main() {
int cnt = 1;
while(true) {
int L, P, V;
int result = 0;
cin >> L >> P >> V;
if(L == 0 && P == 0 && V == 0)
break;
P -= L;
while(V >= L) {
V -= L;
V -= P;
result += L;
}
if(V > 0) {
result += V;
}
cout << "Case " << cnt++ << ": " << result << endl;
}
return 0;
}
반응형
'BaekJoon > C++' 카테고리의 다른 글
1259 : 팰린드롬수 (C++) (0) | 2021.01.20 |
---|---|
2810 : 컵홀더 (C++) (0) | 2021.01.19 |
10799 : 쇠막대기 (C++) (0) | 2021.01.18 |
2751 : 수 정렬하기 2 (C) (0) | 2021.01.11 |
2750 : 수 정렬하기 (C) (0) | 2021.01.11 |
댓글