문제
https://www.acmicpc.net/problem/4796
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder(); int i = 0;
String input = ""; while (!"0 0 0".equals(input = br.readLine())) { int[] lpv = convertStringArrayToIntegerArray(input.split(" "));
int l = lpv[0]; int p = lpv[1]; int v = lpv[2];
sb.append("Case ").append(++i).append(": ").append((v/p) * l + ((v%p) > l ? l : (v%p))).append("\n"); }
System.out.println(sb); }
private static int[] convertStringArrayToIntegerArray(String[] args) { int[] array = new int[args.length]; int i = 0; for (String str : args) { array[i++] = Integer.parseInt(str); }
return array; }
|
흐름
- V일 중에 연속되는 P일 동안 L일 만큼 휴가를 사용 할 수 있으므로
- V에서 P를 나눈 값에서 L일을 곱하면 사용 가능한 휴가 일수가 구해지고
- L이 V일에서 P일을 나눈 값보다 작을 땐 L일 만큼 휴가를 더 갈 수 있고
- 큰 경우엔 V % P 일 만큼 갈 수 있으므로 구한 값을 더하면
- 총 휴가 일수를 구할 수 있다.
결과