PS

백준 4796. 캠핑

tose33 2021. 8. 9. 14:26

https://www.acmicpc.net/problem/4796

 

4796번: 캠핑

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다.

www.acmicpc.net

 

캠핑장을 연속하는 P일 중, L일동안만 사용할 수 있다. 강산이는 이제 막 V일짜리 휴가를 시작했다.

L P V

5 8 20

 

P일 중 L일을 이용할수 있으므로 먼저 V를 P로 나눈값만큼 이용할수 있으므로 

(V / P) * L 만큼 캠핑장을 이용할수 있다.

그 이후 두가지 케이스가 있는데  (V/P)*L 만큼 1. 캠핑장을 이용한후 남은 일수가 L보다 큰경우와 2.낮거나 같은 경우다.

 

1번의 경우 지금까지 이용한 일수 (V/P)*L에 L만큼 더해주면되고

2번은 지금까지 이용한 일수에 남은 일수를 더해주면 된다.

 

#include <iostream>
using namespace std;

int main()
{
    int tc = 1;
    while(true)
    {
        int L,P,V;
        cin >> L >> P >> V;
        if(L == 0 && P == 0 && V == 0) break;

        int div = V / P;
        int left = V % P;

        int ans;
        if(left > L)
        {
            ans = L * div + L;
        }
        else
        {
            ans = L * div + left;
        }

        cout << "Case " << tc << ": " << ans << '\n';
        tc++;
    }

}