설명

동전 거슬러주기

 

 

예시

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

+ Recent posts