자료구조&알고리즘/백준

4796번: 캠핑 [JAVA]

yong_ღ'ᴗ'ღ 2023. 10. 24. 17:02

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

 

4796번: 캠핑

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

www.acmicpc.net

 

문제) V일의 휴가를 시작했다. 캠핑장은 연속하는 P일 중 L일만 사용가능할 때, 최대 며칠동안 사용가능?

 

접근 방식)

1. V일의 휴가 기간을 P일로 나눈 몫에 L을 곱한다.

2. 남은기간(V % P) 와 L 중 작은 값을 더해준다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class B_4796 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;
        int num = 1;
        while (true) {
            st = new StringTokenizer(br.readLine());
            int L = Integer.parseInt(st.nextToken());   // L일만 사용가능
            int P = Integer.parseInt(st.nextToken());   // 연속하는 P일 중
            int V = Integer.parseInt(st.nextToken());   // V일 휴가

            if (L == 0 && P == 0 && V == 0) break;

            int answer = 0;
            answer += (V / P * L) + Math.min(V % P, L);

            sb.append("Case " + num++ + ": " + answer).append('\n');
        }
        System.out.print(sb);
    }
}