[백준] 4796 캠핑 (C++ - 그리디 알고리즘)

zae·2022년 12월 31일
0

programming C/C++

목록 보기
2/8
post-thumbnail
문제 제목번호난이도
캠핑4796브론즈 1

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

문제 설명

캠핑장을 연속하는 P일 중, L일 동안만 사용할 수 있다.
강산이의 V일짜리 휴가 중에서 캠핑장을 사용할 수 있는 최대 일수를 구하면 된다.

입력 : L, P, V를 순서대로 받고, 마지막 줄은 0 0 0을 받는다.
출력 : 강산이가 최대 며칠동안 캠핑장을 사용할 수 있는지 출력한다.

해결 방법

만약 L = 5, P = 8, V = 20이라면, 다음과 같다.
[ 최대 5일 ] + [ 남는 3일 ] + [ 최대 5일 ] + [남는 3일] + [ 남은 일수 : 20 - (5 + 3 + 5 + 3) = 4일] = 20일
즉, 사용 가능한 최대 일수는 5 + 5 + 4 = 14일이다.

이때 남은 일수L보다 크다면 남은 일수를 L로 변경해야한다!

#include <iostream>
using namespace std;
#define endl "\n"

int main(){
    cout.tie(0);
    cin.tie(0);
    
    int cnt = 1;
    while (1) {
        int L, P, V;
        cin >> L >> P >> V;

        if (L==0 && P==0 && V==0) break;
        int use = V / P;
        int remain = V % P;
        if (L < remain) remain = L;

        int result = L * use + remain;

        cout << "Case "<< cnt << ": " << result << endl;
        cnt++;
    }
    return 0;
}
profile
코린이 성장 과정! 깊이 있게 파고들 공부를 탐색하고 있습니다 :)

0개의 댓글