https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
수학 카테고리에 있었는데 dp가 바로 떠올라서 이 방법으로 해결했다. 반복문을 계속 돌려서 풀 수도 있을 것 같다.
문제 및 입출력
코드
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int sugar = sc.nextInt();
// 5 이하일 때는 예외처리
if(sugar<5)
{
if(sugar==3 || sugar==5)
{
System.out.println(1);
return;
}
else
{
System.out.println(-1);
return;
}
}
// dp용 배열 초기설정
int[] dp = new int[sugar+1];
dp[3] = 1;
dp[5] = 1;
// dp실행
for(int i=6; i<=sugar; i++)
{
if(i%5==0)
{
dp[i] = dp[i-5] + 1;
}
else if(i%3==0)
{
dp[i] = dp[i-3] + 1;
}
else
{
// 최소값으로 설정
if(dp[i-3]!=0 && dp[i-5]!=0)
{
dp[i] = Math.min(dp[i-5], dp[i-3]) + 1;
}
}
}
// dp실행 후 0이면 조건불만족이므로 0 출력, 0이 아니면 dp[sugar] 출력
System.out.println(dp[sugar]==0?-1:dp[sugar]);
}
}
'[ 다먹살 ] > - Coding' 카테고리의 다른 글
[백준] 2292 벌집 (0) | 2021.09.10 |
---|---|
[백준] 1193 분수찾기 (0) | 2021.09.09 |
[백준] 2775 부녀회장이 될거야 (0) | 2021.09.08 |
[백준] 1316 그룹 단어 체커 (0) | 2021.09.08 |
[백준] 4673 셀프넘버 (0) | 2021.09.07 |
댓글