https://www.acmicpc.net/problem/4796
4796번: 캠핑
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다.
www.acmicpc.net
문제 풀이
그리디 문제였다. 최대한 P일수를 넣은 뒤 V를 P로 나눈 나머지 값만큼을 더해주는데,
V를 P로 나눈 나머지 값이 L보다 큰지 작은지만 확인한다면 어려운 문제는 아니였다.
소스 코드
#include <iostream>
using namespace std;
int main() {
int cnt = 1;
while (true) {
int L, P, V;
cin >> L >> P >> V;
if (L == 0 && P == 0 && V == 0) break;
int whole_day = V / P;
V = V % P;
int result = 0;
if (V > L) { //나눈 나머지 값이 L보다 큰지 작은지를 비교
result = whole_day * L + L;
}
else {
result = whole_day * L + V;
}
cout << "Case " << cnt << ": " << result << '\n';
cnt += 1;
}
}
'알고리즘' 카테고리의 다른 글
[백준] 16953번 A -> B C++ 문제풀이 (0) | 2023.08.20 |
---|---|
[백준] 1783번 병든 나이트 C++ 문제풀이 (0) | 2023.08.18 |
[백준] 1439번 뒤집기 C++ 문제풀이 (1) | 2023.08.16 |
[백준] 18870번 좌표압축 C++ 문제풀이 (0) | 2023.08.14 |
[백준] 1427번 소트인사이드 C++ 문제풀이 (1) | 2023.08.13 |