설명
동전 거슬러주기
예시
3
1 2 5
15
3
풀이
1. arrays.fill(dis,Integer.MAX_VALUE);
dis[0]=0;
2. for(int i=0; i<n ;i++) {
for(int j=arr[i]; j<=m; j++) {
dis[j]=Math.min(dis[j], dis[(j-arr[i])]+1);
}
}
import java.util.*;
class Main {
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int n= sc.nextInt();
int []arr= new int[n];
for(int i=0; i<arr.length ;i++) {
arr[i]=sc.nextInt();
}
int m = sc.nextInt();
int [] dis= new int[m+1];
Arrays.fill(dis, Integer.MAX_VALUE);
dis[0]=0;
for(int i=0; i<n ;i++) {
for(int j=arr[i]; j<=m; j++) {
dis[j]=Math.min(dis[j], dis[(j-arr[i])]+1);
}
}
System.out.println(dis[m]);
}
}
'알고리즘기초 > DP' 카테고리의 다른 글
| 06. 최대점수 구하기 (0) | 2022.10.03 |
|---|---|
| 04. 가장 높은 탑 쌓기 (0) | 2022.10.02 |
| 03. 최대 부분 증가수열 (0) | 2022.10.02 |
| 02. 돌다리 건너기 (0) | 2022.10.02 |
| 01. 계단오르기 (0) | 2022.10.02 |