π·πΌλͺ¨μ¬λ΄μ κ°λ°μμ²π·πΌ
[JAVA/μ½λ©ν μ€νΈ] λμ κ΅ν λ³Έλ¬Έ
κ°λ°/μκ³ λ¦¬μ¦ λ¬Έμ νμ΄ JAVA
[JAVA/μ½λ©ν μ€νΈ] λμ κ΅ν
μμΌμ΄ 2022. 1. 30. 22:21λ°μν
μ€λͺ
λ€μκ³Ό κ°μ΄ μ¬λ¬ λ¨μμ λμ λ€μ΄ μ£Όμ΄μ Έ μμλ κ±°μ€λ¦λμ κ°μ₯ μ μ μμ λμ μΌλ‘ κ΅νν΄μ£Όλ €λ©΄ μ΄λ»κ² μ£Όλ©΄ λλκ°?
κ° λ¨μμ λμ μ 무νμ μΈ μ μλ€.
μ λ ₯
첫 λ²μ§Έ μ€μλ λμ μ μ’ λ₯κ°μ N(1<=N<=12)μ΄ μ£Όμ΄μ§λ€. λ λ²μ§Έ μ€μλ Nκ°μ λμ μ μ’ λ₯κ° μ£Όμ΄μ§κ³ ,
κ·Έ λ€μμ€μ κ±°μ¬λ¬ μ€ κΈμ‘ M(1<=M<=500)μ΄ μ£Όμ΄μ§λ€.κ° λμ μ μ’ λ₯λ 100μμ λμ§ μλλ€.
μΆλ ₯
첫 λ²μ§Έ μ€μ κ±°μ¬λ¬ μ€ λμ μ μ΅μκ°μλ₯Ό μΆλ ₯νλ€.
μμ μ λ ₯1
3
1 2 5
15
μμ μΆλ ₯ 1
3
ννΈ
μΆλ ₯ μ€λͺ : 5 5 5 λμ 3κ°λ‘ κ±°μ¬λ¬ μ€ μ μλ€.
import java.util.*;
public class Main {
static int n;
static int m;
static int answer = Integer.MAX_VALUE;
static ArrayList<Integer> arrayList = new ArrayList<>();
public void DFS(int L, int sum){
if(m < sum){
return;
}
if(answer <= L){
return;
}
if(sum == m){
answer = Math.min(answer, L);
}else{
for(int i=0; i< arrayList.size(); i++){
DFS(L+1, sum + arrayList.get(i));
}
}
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
n = kb.nextInt();
for(int i=0; i<n; i++){
arrayList.add(kb.nextInt());
}
m = kb.nextInt();
Collections.sort(arrayList, Collections.reverseOrder());
main.DFS(0, 0);
System.out.println(answer);
}
}
'κ°λ° > μκ³ λ¦¬μ¦ λ¬Έμ νμ΄ JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA/μ½λ©ν μ€νΈ] μ‘°ν©μ κ²½μ°μ(λ©λͺ¨μ΄μ μ΄μ ) (0) | 2022.02.10 |
---|---|
[JAVA/μ½λ©ν μ€νΈ] μμ΄κ΅¬νκΈ° (0) | 2022.02.08 |
[JAVA/μ½λ©ν μ€νΈ] Least Recently Used (0) | 2022.01.18 |
[JAVA/μ½λ©ν μ€νΈ] μκΈμ€ (0) | 2022.01.17 |
[JAVA / μ½λ©ν μ€νΈ] 곡주 ꡬνκΈ° (0) | 2022.01.15 |
Comments