[BOJ / C++] #4796 캠핑

Inryu·2021년 8월 7일
0

Problem Solving

목록 보기
12/51
post-thumbnail

문제 풀이

단순한 문제인데, 예외 처리 할 것이 있다.

최대 사용일 수는
1) (V/P) * L
2) V%P

결국 1)+2)를 더해주는 것으로 생각했는데

2)의 경우 V%P 이 L 보다 크게 나오는 경우가 있다.

예를 들어, 24(V)일의 휴가동안, 캠핑장은 연속하는 5(P)일중 3(L)일만 사용할 수 있다 할 때

  1. (V/P) L = 24/53=12
  2. V%P = 24%5=4
    -> 이때 4는 연속하여 사용할 수 있는 L=3 보다 크다
    -> 그러므로 V%P>L일 경우, 최대 사용 일수인 L으로 더해줘야 한다.

코드

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main(){

    int caseNum=1;

    while(1){
        int L,P,V;
        int maxDays=0;
        cin>>L>>P>>V;
        if(L==0&&P==0&&V==0) break;
        
        maxDays+=(V/P)*L;

        if(V%P>L){
            maxDays+=L;
        }else
        {
            maxDays+=V%P;
        }

        cout<<"Case "<<caseNum++<<": "<<maxDays<<"\n";
    }

    return 0;

}```

profile
👩🏻‍💻

0개의 댓글