[백준] 캠핑 4796번 - Java

GoshK·2022년 2월 16일
0

[백준] Java

목록 보기
38/49
post-thumbnail

[백준] 캠핑 4796번

나의 풀이

public class Camping {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int count = 1;
        while(true) {
            int[] items = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
            int L = items[0], P = items[1], V = items[2];
            if(L == 0 && P == 0 && V == 0) {
                break;
            }
            int result = ((V / P) * L) + Math.min((V % P), L);
            sb.append("Case ").append(count++).append(": ").append(result).append("\n");
        }

        System.out.println(sb);
    }
}
  • 정해진 횟수가 없으므로 무한 반복을 돌린다.
  • 만약 입력 값에 0 0 0 이 나온다면 반복을 종료한다.
  • P일 중, L일동안만 사용할 수 있으며, 강산이는 V일짜리 휴가를 시작했다.
    식을 짜보자면, 우선 V일 휴가동안 P일이 몇 번 가능한지 알기 위해서 V / P를 해준다.
    해당 결과 값에 L을 곱하면 P일을 꽉 채웠을 때 사용할 수 있는 일 수가 나온다.
    그리고 나머지를 더해줘야 하는데, 나머지가 L보다 크다고 하더라도, L만큼 밖에 머무르지 못하기 때문에 Math.min을 사용하여 L보다 작거나 같은 숫자만 반환하도록 한다.

0개의 댓글