Nkg의 설탕을 5kg 짜리 봉투와 3kg짜리 봉투로 정확하게 나눠담을 수 있는 경우
배달이 가능하다. 1kg 혹은 2kg이 남는경우 배달이 불가하다.
예를 들어 4kg 그램의 경우 3kg 하고 1kg 이 남아 배달이 불가하다.
따라서, 풀이 방법은
Nkg의 설탕을 5kg 으로 나누고, 나누어 떨어지면 그 몫이 정답이고
나누어 떨어지지 않는다면, 그 몫 만큼 반복문을 돌려서
N - (5 * 몫) 을 3으로 나눈 나머지가 0이 라면,
해당 반복문 순차의 몫이 5kg의 봉투갯수고, 해당 반복문 순차의 몫 / 3의 몫이 3kg 짜리 봉투 갯수이다.
//설탕 배달
//5와 3을 최소 횟수로 합하여 N을 만드는 문제
public class BJ_2839 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int weightOfSugar = Integer.parseInt(br.readLine());
if (weightOfSugar < 3 || weightOfSugar > 5000) return;
int five = 0;
int three = 0;
int quotient = weightOfSugar / 5;
if(weightOfSugar % 5 == 0) { //5로 나누어 떨어는 경우
System.out.println(quotient);
return;
}
while (quotient > -1){
if((weightOfSugar - (5 * quotient)) % 3 == 0){ //5킬로그램으로 가져다 줄수 있는 최대 갯수 부터 - 해가며 3으로 가져다 줄수 있는 경우의 수 찾음.
three = (weightOfSugar - (5 * quotient)) / 3;
five = quotient;
System.out.println(five + three);
return;
}
if(quotient == 0) {
System.out.println(-1);
return;
}
--quotient;
}
}
}```