본문 바로가기

백준/그리디

백준 4796 - 캠핑

728x90

www.acmicpc.net/problem/4796

 

V일의 휴가 중에서 캠핑장을 최대 며칠이나 즐길 수 있을지 구하는 문제이다.

 

연속하는 P일 중 L일 동안 사용이 가능하다 명시했으므로 V를 P로 나누면 캠핑장을 L일동안 쓸 수 있는 횟수가 나오게 될 것이다.

 

이때 나머지는 min(mod, L) 계산을 통해 나머지 일 수 중에서 캠핑을 즐길 수 있는 날을 더해주면 답을 구할 수 있다.

 

최종 수식

 

$ANSWER = \lfloor V \div P \rfloor \times L + min(V mod P, L)$

 

전체코드

#include <iostream>
#include <algorithm>

using namespace std;
using ll = long long;

int main()
{
    int l, p, v;
    cin >> l >> p >> v;

    int cnt = 1;
    while (l && p && v)
    {
        ll res = 0;
        res += (ll)v / p * l;
        if (v % p)
            res += min(l, v % p);
        cout << "Case " << cnt << ": " << res << "\n";
        cin >> l >> p >> v;
        ++cnt;
    }
}

 

728x90

'백준 > 그리디' 카테고리의 다른 글

백준 13458 - 시험 감독  (0) 2020.06.20
백준 1758 - 알바생 강호  (0) 2020.06.06
[ICPC] 백준 17521 - Byte Coin  (0) 2020.06.05
백준 12915 - 대회 개최  (0) 2020.05.29
백준 1744 - 수 묶기  (0) 2019.09.20