CodingTest
백준 2839 JAVA DP 설탕 배달
KkingKkang
2025. 4. 22. 15:00
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