[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]);

    }
}
  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ