Algorithm/백준 알고리즘

백준_4796 캠핑(자바) / 수학

미스터로즈 2021. 10. 27. 09:26

시간&메모리 제한

 

문제

 

입력&출력

 

문제풀이

package com.Back;

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

public class Back_4796 {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		int cnt = 0;
		while(true) {
			cnt++;
			st = new StringTokenizer(br.readLine());
			int L = Integer.parseInt(st.nextToken());
			int P = Integer.parseInt(st.nextToken());
			int V = Integer.parseInt(st.nextToken());
			if(L==0&&P==0&&V==0) {
				break;
			}
			int tmp = V/P;
			int tmp2 = V%P;
			
			sb.append("Case "+cnt+": "+(tmp*L+Math.min(tmp2, L))+"\n");			
		}
		System.out.println(sb);
	}

}

 

※ 내 생각

이 문제는 그리디 또는 수학으로 푸는 문제입니다.

저는 수학으로 바로 해결을 했습니다.

3개의 값을 받아오고
최대 일에서 연속하는 일 수로 나눈 것과 나머지를 활용하여 계산할 수 있습니다.