N을 입력 받으면 5, 3으로 구성할 수 있는 최소값 출력
출력할 수 없다면 -1 리턴
문제 링크
N을 5로 나눈 몫과 나머지를 계산하고 나머지가 3으로 나누어 떨어지는 경우 5의 몫+3의 몫으로 리턴
만약 위의 방법으로 구할 수 없는 경우 3을 사용하는 것을 강제해가며 계산
// https://www.acmicpc.net/problem/2839
#include <iostream>
#include <vector>
int SugarDelivery(const int N){
int answer = -1;
for (int i=N/5; i>=0; --i){
const int remain = N-(i*5);
if (remain%3 == 0){
answer = i+(remain/3);
return answer;
}
}
return answer;
}
int main(){
int N = 0;
std::cin >> N;
std::cout << SugarDelivery(N) << std::endl;
}