백준 4796 - 캠핑 - 그리디 알고리즘

문제


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

풀이전략

  1. P일중 L일 사용 가능하며, V일 짜리 휴가를 내었고, 1 < L < P < V이다. 이중 사용가능한 날의 최대값을 찾는 문제이다.
  2. V가 P를 몇번 사용할 수 있는지 찾는다. V/P를 계산한 몫에 L을 곱해준다. V%P한 나머지가 L보다 크다면 L을 더해주고 L보다 작다면 그냥 그값을 더해주면 된다.

코드

#include<cstdio>

using namespace std;



int main(){

    // freopen("../input.txt","rt",stdin);
    int L, P, V;
    int i = 1;
    while(1){
        scanf("%d %d %d",&L, &P, &V);
        if(L == 0 && P == 0 && V == 0) break;
        int res = 0;
        int cnt = V/P;
        res = cnt * L;
        if(V % P > L){
            res += L;
        }
        else res += V%P;

        printf("Case %d: %d\n",i, res);
        i++;    
    }
    
    return 0;
}


소감

ICPC문제였지만 역시 A번이라 그런가 이제는 쉽게 풀 수 있다.

좋은 웹페이지 즐겨찾기