# BOJ04796 캠핑

https://www.acmicpc.net/problem/4796 (opens new window)

캠핑장을 연속하는 P일 중, L일 동안만 사용할 수 있다. 강산이는 이제 막 V일짜리 휴가를 시작했다. 강산이가 캠핑장을 최대 며칠동안 사용할 수 있는지 구해야 한다.

우선 p, l, v가 모두 0인 경우 입력이 종료되었다는 것을 표시한다. 간단히 break를 걸어 반복을 종료하도록 설정한다.

int p = scanner.nextInt();
int l = scanner.nextInt();
int v = scanner.nextInt();

if (p == 0 && l == 0 && v == 0) {
    break;
}

강산이는 20일의 휴가 중 8일 중에 5일만 캠핑장 사용이 가능하다고 가정한다. 강산이는 총 휴가 기간 동안 14일의 기간을 머무를 수 있다.

또한 20일의 휴가 중 8일 중에 2일만 캠핑장 사용이 가능하다고 가정한다. 강산이는 총 휴가 기간 동안 6일의 기간을 머무를 수 있다.

이것을 일반화하면 아래와 같이 표현이 가능하다.

int sum = ((v / l) * p) + Math.min(v % l, p);
System.out.println("Case " + count + ": " + sum);
count++;

# 제출 코드

최종 제출 코드이다.

import java.util.Scanner;

public class BOJ4796 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int count = 1;
        while (true) {
            int p = scanner.nextInt();
            int l = scanner.nextInt();
            int v = scanner.nextInt();

            if (p == 0 && l == 0 && v == 0) {
                break;
            }

            int sum = ((v / l) * p) + Math.min(v % l, p);
            System.out.println("Case " + count + ": " + sum);
            count++;
        }
    }
}
#algorithm #BOJ #수학 #그리디 알고리즘
last updated: 10/10/2021, 6:09:25 PM