λ¬Έμ : boj.kr/2293
λ μ§: 09/22 (μΌ)
μ±κ³΅μ¬λΆ: X
1, 2, 5μ λμ μ κ°κ³ 10μμ λ§λ λ€κ³ νλ©΄ 1μλ§ μ¨μ λ§λλ κ²½μ°μ μ, 1μκ³Ό 2μμ μ¨μ λ§λλ κ²½μ°μ μ, 1μ 2μ 5μμ λͺ¨λ μ¬μ©ν΄μ λ§λλ κ²½μ°μ μλ‘ λλ μ μλ€. 1μμ λ¨Όμ μ¨μ λ§λλ κ²½μ°μ μλ₯Ό ꡬν΄λκ³ 2μμ μ¨μ λ§λλ κ²½μ°μ μλ₯Ό λνλ©΄ 1μκ³Ό 2μμΌλ‘ 10μμ λ§λλ κ²½μ°μ μλ₯Ό μ°Ύμ μ μμ§ μμκΉ?
κ·ΈλΌ μ€λ³΅μ μ΄λ»κ² μ κ±°νλ? 1μμΌλ‘λ§ 2μλΆν° 10μκΉμ§ λ§λ κ²½μ°μ μκ° μλ μν©μμ 2μμ 무쑰건 ν¬μ νλ€κ³ μκ°ν΄λ³΄μ. κ·ΈλΌ, 2μμΌλ‘ 2μμ λ§λ€κΈ° μν΄ 2μ νλλ§ μ¬μ©ν μ μλ€. 1+1, 2 2κ°μ§κ° μλ κ²½μ°μ΄λ―λ‘ μλ 1+1 κ²½μ°μ μμ 2λ‘ λ§λ κ²½μ°μ μ = 2κ° λλ€.
3μμ κ²½μ° 1+1+1μ μλ μμκ³ 2μμ΄ ν¬μ λλ©΄ 1+2κ° μλ€. μ΄λ 1μμΌλ‘ 1μμ λ§λ κ²½μ°μ μμ 2μλ§ λΆμ¬μ£Όλ©΄ λλκΉ κ²°κ΅, 1μμΌλ‘ 1μμ λ§λ κ²½μ°μ μλ₯Ό μΆκ°λ‘ λνλ©΄ λλ€. 2+1λ μμ§μλκ³ ν μ μμ§λ§, 2μμΌλ‘ 2μμ λ§λ κ²½μ°μ μμ 1μμ μΆκ°λ‘ λν κ²μΈλ° μ°λ¦¬λ νμ λ§μ§λ§μ 2μμ μ¬μ©ν κ±°κΈ° λλ¬Έμ μκ°νμ§ μμλ λλ€.
4μμ κ²½μ° 1+1+1+1 κ²½μ°μ μλ₯Ό ꡬν μνμ΄κ³ , μΆκ°λ‘ 1+1+2μ 2+2 κ²½μ°μ μκ° μλ€. μ΄λ 1λ‘ 2λ₯Ό λ§λλ κ²½μ°μ μμ 2λ‘ 2λ₯Ό λ§λλ κ²½μ°μ μ μ¦, 1μκ³Ό 2μμΌλ‘ 2μμ λ§λλ κ²½μ°μ μ + 1μμΌλ‘ 4μμ λ§λ κ²½μ°μ μκ° λλ€.
κ³μ μ΄λ°μμΌλ‘ λμκ°λ©΄ λ€μκ³Ό κ°μ ν μ΄λΈμ΄ μμ±λλ€.
|
dp
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
|
1μ
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
|
2μ
|
1
|
1
|
2
|
2
|
3
|
3
|
4
|
4
|
5
|
5
|
6
|
|
5μ
|
1
|
1
|
2
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
10
|
μ¦, 1μλ§ μ¨μ λ§λ κ²½μ°μ μμ 2μμ μΆκ° ν¬μ ν΄λ³΄κ³ , 5μμ μΆκ° ν¬μ ν΄λ³΄λ κ²μ΄λ€. μ΄λΌ μ€λ³΅μμ΄ λͺ¨λ κ²½μ°μ μλ₯Ό ꡬν μ μλ€. μλλ©΄ μμ λ§νλ―μ΄ λ¬΄μ‘°κ±΄ μΆκ° ν¬μ ν λμ μ λ§μ§λ§μ μ¬μ©νλλ‘ νκΈ° λλ¬Έμ΄λ€.
μ½λ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int[] dp;
static int n, k;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
k = Integer.parseInt(st.nextToken());
dp = new int[k+1];
dp[0] = 1;
for (int i = 0; i < n; i++) {
int tmp = Integer.parseInt(br.readLine());
if (tmp > 10000) continue;
for (int j = tmp; j <= k; j++)
dp[j] += dp[j - tmp];
}
System.out.println(dp[k]);
}
}
'μκ³ λ¦¬μ¦ λ¬Έμ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| 16235λ² λ¬Έμ μ μκ° μ€μ΄κΈ° (2) | 2024.09.26 |
|---|---|
| 1513 λ¬Έμ μμ μ 4μ°¨μ λ°°μ΄μ μ¬μ©ν΄μΌ νλ? (2) | 2024.09.25 |
| 2294λ² λ¬Έμ λ©λͺ¨ (0) | 2024.09.22 |
| 2240 - μλλ무 (0) | 2024.09.20 |
| 2098 - μΈνμ μν (2) | 2024.09.17 |