사탕가게에 설탕을 배달하는 상근이는 정확한 키로수의 봉지를 사용해서 배달하는것을 좋아하는데 설탕공장에는 5kg와 3kg의 봉지가 있다.
이때, 상근이가 사탕가게에 설탕을 배달하는데 최대한으로 적게 봉지를 사용해서 배달 하려면 n키로의 설탕을 배달할때 몇개의 봉지를 가져가야하는지 만들어보는 프로그램.
#include<stdio.h>
int main(){
int user;
int count = 0;
scanf("%d", &user);
while(user > 0){ // 배달 가야할 설탕이 0보다 작을때까지 반복문으로 설탕을 봉지에 포장한다
if(user % 5 == 0){ // 제일 먼저 5로 나눴을때 나머지가 0 이면 5의 배수이니 user 입력 값에서 5를 빼주고 count++
user -=5;
count++;
}
else if(user % 3 ==0){ // 5로 안나눠지고 3으로 나눠서 나머지가 0 이라면 3의 배수이니 user 에서 3을 빼주고 count++
user -=3;
count++;
}
else if(user > 5){ // 5나 3으로 나눠서 딱 떨어지지 않는다면 최솟값일수 있으니 일단 5를 빼줘서 계속 반복문을 돌려본다.
user -=5;
count++;
}
else{
count = -1; // 계속 빼줬는데 5의 배수나 3의 배수에 걸리지 않는다면 딱 맞아 떨어지지 않는 값이니 -1 출력
break;
}
}
printf("%d", count);
}
이번 문제는 그동안 풀었던 문제보다는 훨씬 쉬운 난이도였다. 문제를 보자마자 어떻게 해야할지 바로 떠올랐다. 공식을 세우기 보단 살짝 노가다 성으로 풀긴 했지만 그래도 바로 떠올렸다는것에 감사한다..