[BOJ 2293] ๋์ 1
1. ๋ฌธ์ : Link
๋์ ์ข ๋ฅ n
๋ง๋ค์ด์ผํ๋ ๊ฐ k
๋ฅผ ๋ฐ์์ k๋ฅผ ๋ง์กฑ์ํค๋ ๋์ ์ ํฉ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์
2. ํ์ด
๋์ ๊ณํ๋ฒ์ ํ์ฉํ๋ ๋ฌธ์
๋ฐฐ์ด์ ๊ณ์ฐ๋ ๊ฐ์ ๋ฃ์ด์ฃผ๋ ๊ฒ์ ๋ฐ๋ณตํ๋ค.
์ฝ๊ฒ ๋งํ๋ฉด,
1,2,5๋ก 7์ด๋ผ๋ ์ซ์๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ์ ์๋ 7์ด ๋๊ธฐ์ํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ค์ด ๋ํด์ง ๊ฒฐ๊ณผ์ด๊ธฐ ๋๋ฌธ์ ๋์ ๊ณํ๋ฒ์ด ์ฌ์ฉ๋ ๊ฒ์ด๋ผ ํ ์ ์๋ค.
https://pacific-ocean.tistory.com/200
3. ์ฝ๋
package baekjoon;
import java.io.IOException;
import java.util.*;
public class Main {
static int N;
static int sum;
static int[] coins;
static int[] dp;
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
sum = sc.nextInt();
coins = new int[N];
for(int i=0; i<N; i++){
coins[i] = sc.nextInt();
}
dp = new int[sum+1];
dp[0] = 1;
for(int i = 0; i < N; i++) {
for(int j = coins[i]; j <= sum; j++) {
dp[j] += dp[j - coins[i]];
}
}
System.out.println(dp[sum]);
}
}
'๐ป Coding Problems Solving > Dynamic Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] LV.2 ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (์๋ฐ java) (0) | 2023.01.12 |
---|---|
[LeetCode] Maximum Subarray (0) | 2022.07.24 |
[LeetCode] Climbing Stairs (0) | 2022.07.09 |
[BOJ 15486] ํด์ฌ2 (0) | 2022.07.05 |
[BOJ 2294] ๋์ 2 (0) | 2022.06.29 |
์ต๊ทผ๋๊ธ