본문 바로가기
CodingTest

백준 2839 JAVA DP 설탕 배달

by KkingKkang 2025. 4. 22.
728x90

https://www.acmicpc.net/problem/2839

 

5kg과 3kg에 최소의  포대를 사용해서 넣어야 함.

5kg을 최대한 많이 넣어야 좋음.

 

1. 설탕이 5의 배수인지 살펴보고, 배수이면 몫이 정답.

 

2. 설탕이 3미만인지 본다. 3kg포대가 최소 용량이기 때문에 -1을 리턴한다.

 

3. 3kg 포대에 하나 채우고, 나머지 설탕을 다시 1번부터 시작해본다. 

 

 

18kg일 경우

 

18 -> 5의 배수 아님 / -3 (포대+1) -> 15 -> 5의 배수임 (포대 + 15/5 ) = 1 + 3 = 4 

 

import java.io.*;

public class Main {

	public static void main(String[] args) throws IOException {
    
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int sugar = Integer.parseInt(br.readLine());
        br.close();
        
        int basket = 0; 
        
        while(sugar > 0){
        
        	if(basket % 5==0){
            	basket += sugar/5;
                break;
            }
            
            if(sugar < 3){
            	basket = -1;
                break;
            }
            
            sugar -= 3;
            basket++;
        
        }
        
        System.out.println(basket);
    
    }
}
728x90

댓글