4796
4796번: 캠핑
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다.
www.acmicpc.net
문제
등산가 김강산은 가족들과 함께 캠핑을 떠났다. 하지만, 캠핑장에는 다음과 같은 경고문이 쓰여 있었다.
캠핑장은 연속하는 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 |
댓글