Algorithm/📖Baekjoon
#4796 캠핑
yewoneeee
2022. 7. 25. 19:40
# 문제
# 입력 및 출력
# 풀이
처음엔 결과 값이 v / p * l + v % p 인 줄 알았는데
v % p 값이 l 보다 큰 경우를 생각하지 못해서 틀렸다
입력이 5 8 22 인 경우를 예를 들어보자
22 / 8 * 5 = 10
22 % 8 = 6
따라서 처음 생각한 식에 대입하면 16이지만 한 턴에 최대 l일 동안만 캠핑장을 사용할 수 있기 때문에
22 % 8 의 값인 6을 더하는 것이 아니라 5를 더해 15가 되어야 한다
즉, 결과 값은 v % p가 l보다 작은 경우엔 v / p * l + v % p
v % p가 l보다 큰 경우엔 v / p * l + l 가 된다
#include <iostream>
using namespace std;
int main() {
int l, p, v, res, i = 1;
while (1) {
cin >> l >> p >> v;
if (!l && !p && !v) break;
res = v / p * l;
res += v % p > l ? l : v % p;
cout << "Case " << i++ << ": " << res << "\n";
}
}