[백준] 캠핑 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보다 작거나 같은 숫자만 반환하도록 한다.