λ¬Έμ
nκ°μ§ μ’ λ₯μ λμ μ΄ μλ€. κ°κ°μ λμ μ΄ λνλ΄λ κ°μΉλ λ€λ₯΄λ€. μ΄ λμ μ μ λΉν μ¬μ©ν΄μ, κ·Έ κ°μΉμ ν©μ΄ kμμ΄ λλλ‘ νκ³ μΆλ€. κ·Έ κ²½μ°μ μλ₯Ό ꡬνμμ€. κ°κ°μ λμ μ λͺ κ°λΌλ μ¬μ©ν μ μλ€.
μ¬μ©ν λμ μ ꡬμ±μ΄ κ°μλ°, μμλ§ λ€λ₯Έ κ²μ κ°μ κ²½μ°μ΄λ€.
μ λ ₯
첫째 μ€μ n, kκ° μ£Όμ΄μ§λ€. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) λ€μ nκ°μ μ€μλ κ°κ°μ λμ μ κ°μΉκ° μ£Όμ΄μ§λ€. λμ μ κ°μΉλ 100,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€.
μΆλ ₯
첫째 μ€μ κ²½μ°μ μλ₯Ό μΆλ ₯νλ€. κ²½μ°μ μλ 231λ³΄λ€ μλ€.
λ°±μ€ κ³¨λ 5 λ¬Έμ !
2μμ§λ¦¬ λμ μ΄ μκ³ 1μμ§λ¦¬λ§ μλ€λ©΄ dp[2] = 1 = 'dp[1]+1μμ§λ¦¬ λμ λνλ κ²½μ°'
μ μκ°ν΄λ³΄λ©΄ κ²°κ΅ dp[ i ] = 'dp[ i - μ½μΈ λ¨μ ] + κ·Έ μ½μΈμ λνλ κ²½μ°' μ΄λ€.
μ¬κΈ°μλ μ½μΈμ΄ μ¬λ¬κ°μ΄λ―λ‘ μ κ³Όμ μ λ°λ³΅νμ¬ λμ μν€λ©΄ λλ€.
c++ νμ΄
#include <iostream>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int n;
int k;
int coin[102] = {0,};
int dp[10002] = {0,};
cin >> n >> k;
for (int i = 0; i < n; ++i){
cin >> coin[i];
}
dp[0] = 1;
for (int i = 0; i < n; ++i){
for (int j = coin[i]; j <= k; ++j){
dp[j] += dp[j - coin[i]];
}
}
cout << dp[k];
return 0;
}
'π μκ³ λ¦¬μ¦ > BOJ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++/BOJ] 14940 : μ¬μ΄ μ΅λ¨κ±°λ¦¬ (BFS) / test case (0) | 2023.02.22 |
---|---|
[C++/BOJ] 2149 : μνΈ ν΄λ (0) | 2023.02.22 |
[C++/λ°±μ€] 11052 : μΉ΄λ ꡬ맀νκΈ° (0) | 2023.02.21 |
[C++/λ°±μ€] 1260 : DFSμ BFS (0) | 2023.02.21 |
[C++/λ°±μ€] 1149 : RGB 거리 (0) | 2023.02.21 |