개발하는 kim-hasa

[c++][BOJ][4796] 캠핑 본문

Algorithm/BOJ

[c++][BOJ][4796] 캠핑

kim-hasa 2021. 10. 21. 11:53

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

 

4796번: 캠핑

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

www.acmicpc.net

그리디 알고리즘을 이용한 문제입니다.

 

연속된 P일 동안 최대 L 일이므로, 전체 기간을 P로 나누게 되면 그 횟수가 나오는데, 횟수당 최대 L일 이므로

L을 곱해서 더해줍니다.

 

그 다음 나머지가 L보다 크다면 L을 더하고, 그렇지 않다면 남은 일수만 더합니다.

#include <iostream>
using namespace std;

int main(){
    int L,P,V;
    int count = 1;
    
    while(true){
        cin >> L >> P >> V;
        
        if(L == P && P == V && V == 0)
            break;
        int sum = 0;
        
        int a = V / P;
        sum += a * L ;
        int b = V % P;
        
        if(b >= L)
            sum += L;
        else
            sum += b;
        
        cout << "Case "<< count << ": " << sum << '\n';
        count++;       
    }
    return 0;
}

'Algorithm > BOJ' 카테고리의 다른 글

[c++][BOJ] 보물  (0) 2021.10.25
[c++][BOJ][1931] 회의실 배정  (0) 2021.10.21
[c++][BOJ][1764] 듣보잡  (0) 2021.10.20
[c++][BOJ] 통계학  (0) 2021.10.19
[c++][BOJ] 수 정렬하기 3  (0) 2021.10.19