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
'CodingTest' 카테고리의 다른 글
[JAVA/dp]백준 1463 : 1로 만들기 (0) | 2025.04.22 |
---|---|
이분탐색 입국심사 JAVA 프로그래머스 코딩테스트 (0) | 2025.03.21 |
동적계획법(Dynamic Programming) 도둑질 자바 (0) | 2025.03.14 |
프로그래머스 동적계획법(Dynamic Programming) 정수 삼각형 자바 (0) | 2025.03.05 |
프로그래머스 동적계획법(Dynamic Programming) N으로 표현 자바 (0) | 2025.03.05 |
댓글