본문 바로가기

Algorithm/Greedy

(C++) - 백준(BOJ) 4796번 : 캠핑 답

반응형

www.acmicpc.net/problem/4796

 

4796번: 캠핑

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

www.acmicpc.net

greedy문제였습니다.

 

풀이방법

 1. v/p*l일 수 만큼 캠핑을 먼저 갑니다.

 2. 나머지 갈 수 있는 캠핑 일 수를 더해줍니다.

     v%p <= l이면 ans += v %p

     else 면 갈 수 있는 최대 일 수가 l이 ans += l 입니다.

 

Code

#include <bits/stdc++.h>
using namespace std;
int main(){
    int l,p,v;
    int caseCnt = 0;
    while(1){
        cin >> l >> p >> v;
        if(!l && !p && !v) break;
        caseCnt++;
        int ans = v/p*l;
        if(v%p <= l) ans += v%p;
        else ans += l;
        printf("Case %d: %d\n",caseCnt,ans);
    }
}