Algorithm

백준_설탕 배달_2839

Young_J 2020. 11. 7. 23:20

//알고리즘

1. dp

2. 입력값의 최대가 5000이기 때문에 5000개 이상의 배열을 만들어 계산함.

3. 3의 배수와 5의배수를 확인해야 하기 때문에 0,1,2,4는 아주 큰값으로 먼저 설정하고 6부터 계산함.

더보기
import java.util.Scanner;

public class 설탕배달_2839 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		int[] dp = new int[5003];
		dp[0] = dp[1] = dp[2] = dp[4] = Integer.MAX_VALUE;
		dp[3] = dp[5] = 1;
		
		for (int i = 6; i < dp.length; i++) {
			dp[i] = Math.min(dp[i-3], dp[i-5]) ==Integer.MAX_VALUE?Integer.MAX_VALUE:Math.min(dp[i-3], dp[i-5])+1;
		}
		System.out.println(dp[N]==Integer.MAX_VALUE?-1:dp[N]);
	}

}