Contents

[백준 2839]설탕 배달 - JAVA 풀이

   Aug 22, 2021     1 min read     - Comments

바로가기

문제

문제


해석

  1. 5kg 과 3kg 설탕이 있을 때, 최소한의 개수로 목표량을 채우는 문제

  2. 목표량을 정확하게 맞출 수 없으면 -1을 반환


풀이

  1. 개수를 최소한으로 하기 위해서는 5kg 설탕을 많이 사용해야 한다.

  2. 먼저 n5로 나누어 주고 나머지가 0이 아니라면 n - 3을 해준다.(최대한 5kg으로 채운 뒤 3kg으로 나머지를 채우는 방식)

  3. n % 50이 될 때까지 반복해준다. (반복할 때마다 설탕 개수는 하나씩 늘어난다.)

  4. n이 마이너스가 되면 불가능 하므로 -1로 반환 한다.


코드

import java.io.*;

public class Main
{  
    public static void main(String args[]) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));          
        
        bw.write(calc(Integer.parseInt(br.readLine())) + "\n");        
        
        bw.flush();
        bw.close();
    }
    
    public static int calc(int n){
        int count = 0;
        
        while(n % 5 != 0){
            count++;
            n -= 3;            
            if(n < 0)
                return -1;
        }        
            
        return  count + n / 5;
    }
}