package inflearn; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; /* * ëì êµí(DFS) * */ public class Problem8_05 { static int n; static int m; static Integer[] coin; static int answer = Integer.MAX_VALUE; // ìµìê°ì 찾기 ìí¨ public void DFS(int level, int sum) { if (sum > m || level >= answer) { return ; } if (sum == m) { answer = Math.min(answer, level); } else { for (int i = 0; i < coin.length; i++) { DFS(level + 1, sum + coin[i]); } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); // ëì ì¢ ë¥ì ê°ì coin = new Integer[n]; for (int i = 0; i < n; i++) { coin[i] = sc.nextInt(); } m = sc.nextInt(); // ê±°ì¬ë¬ì¤ ê¸ì¡ Arrays.sort(coin, Comparator.reverseOrder()); Problem8_05 problem = new Problem8_05(); problem.DFS(0, 0); System.out.println(answer); } }