티스토리 뷰
//알고리즘
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]);
}
}
'Algorithm' 카테고리의 다른 글
백준_벽부수고 이동하기_2206 (0) | 2020.11.09 |
---|---|
백준_색종이 만들기_2630 (0) | 2020.11.08 |
백준_낚시왕_17143 (0) | 2020.11.06 |
백준_경비원_2564 (0) | 2020.11.05 |
백준_양치기 꿍_3187 (0) | 2020.11.03 |