https://www.acmicpc.net/problem/4796
문제
등산가 김강산은 가족들과 함께 캠핑을 떠났다. 하지만, 캠핑장에는 다음과 같은 경고문이 쓰여 있었다.
캠핑장은 연속하는 20일 중 10일동안만 사용할 수 있습니다.
강산이는 이제 막 28일 휴가를 시작했다. 이번 휴가 기간 동안 강산이는 캠핑장을 며칠동안 사용할 수 있을까?
강산이는 조금 더 일반화해서 문제를 풀려고 한다.
캠핑장을 연속하는 P일 중, L일동안만 사용할 수 있다. 강산이는 이제 막 V일짜리 휴가를 시작했다. 강산이가 캠핑장을 최대 며칠동안 사용할 수 있을까? (1 < L < P < V)
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다.
출력
각 테스트 케이스에 대해서, 강산이가 캠핑장을 최대 며칠동안 사용할 수 있는지 예제 출력처럼 출력한다.
해결방안 -> L,P,V일떄 강산이가 이용할 수 있는 캠핑장의 최대 일수는
(v/p)*l + v%p이다.
L == 5, P == 8 , V == 20일떄
(20/8)*5 + 20%8 -> 14,
하지만 이것은 v%p < l일때 성립하고
v%p >= l일떄는 l을 모두 이용할수 있으므로 (v/p)*l + l이 된다
전체 소스코드->
#include <stdio.h>
//백준 4796 캠핑
int main(void){
int count = 1;
while(1){
int l,p,v;
scanf("%d %d %d",&l,&p,&v);
if(l == 0 && p == 0 && v == 0){
break;
}
else{
if(v%p < l){
printf("Case %d: %d\n",count,(v/p)*l + v%p);
}
else{
printf("Case %d: %d\n",count,(v/p)*l + l);
}
}
count++;
}
}
'알고리즘' 카테고리의 다른 글
백준 24479 알고리즘 수업 - 깊이 우선 탐색1 (0) | 2022.04.07 |
---|---|
C++ map 컨테이너의 lowerbound와 upperbound (0) | 2022.04.07 |
백준 1439번 C++ (0) | 2022.03.25 |
백준 21921 블로그 C++ (0) | 2022.03.22 |
슬라이딩 윈도우 알고리즘 (0) | 2022.03.22 |