4796
문제
등산가 김강산은 가족들과 함께 캠핑을 떠났다. 하지만, 캠핑장에는 다음과 같은 경고문이 쓰여 있었다.
캠핑장은 연속하는 20일 중 10일동안만 사용할 수 있습니다.
강산이는 이제 막 28일 휴가를 시작했다. 이번 휴가 기간 동안 강산이는 캠핑장을 며칠동안 사용할 수 있을까?
강산이는 조금 더 일반화해서 문제를 풀려고 한다.
캠핑장을 연속하는 P일 중, L일동안만 사용할 수 있다. 강산이는 이제 막 V일짜리 휴가를 시작했다. 강산이가 캠핑장을 최대 며칠동안 사용할 수 있을까? (1 < L < P < V)
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다.
출력
각 테스트 케이스에 대해서, 강산이가 캠핑장을 최대 며칠동안 사용할 수 있는지 예제 출력처럼 출력한다.
코드
//4796 캠핑
#include <iostream>
using namespace std;
int main() {
int L, P, V;
int i = 1;
while (1) {
cin >> L >> P >> V;
if (L == 0 && P == 0 && V == 0)
break;
int day = 0;
day = (V / P) * L;
if (V % P <= L)
day += V % P;
else
day += L;
cout << "Case " << i << ": " << day << endl;
i++;
}
return 0;
}
설명
P, L, V를 입력받는다. 연속하는 P일 중 L일 동안만 사용할 수 있고, V일짜리 휴가를 시작한다.
테스트 케이스는 0, 0, 0을 입력받기 전까지 계속 반복한다. 그래서 if문으로 0 0 0을 입력받았을 때 반복문을 빠져나와 종료된다.
사용할 수 있는 일 수를 day 변수에 저장한다.
V를 P로 나눈 몫을 L과 곱하여 day를 구할 수 있다. 그리고 남은 일 수 중 L보다 작다면 나머지 일 수를 모두 캠핑장을 사용 가능하고 그렇지 않다면 L일 수만큼만 캠핑장을 사용할 수 있다.
출력
고찰
이번 문제는 어려움 없이 쉽게 풀 수 있었다.
난이도(5개)
★☆☆☆☆
'알고리즘 > 백준' 카테고리의 다른 글
알고리즘(C++) / 백준 1931 : 회의실 배정 (0) | 2021.03.08 |
---|---|
알고리즘(C++) / 백준 12845 : 모두의 마블 (0) | 2021.03.07 |
알고리즘(C++) / 백준 1946 : 신입 사원 (0) | 2021.03.07 |
알고리즘(C++) / 백준 13458 : 시험 감독 (0) | 2021.03.06 |
알고리즘(C++) / 백준 11000 : 강의실 배정 (0) | 2021.03.05 |
댓글