[BOJ]2293コイン1
8619 ワード
🔗 Problem
https://www.acmicpc.net/problem/2293
👩💻 Code package baekjoon;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
// 동전 1
public class BJ2293 {
static int n;
static int k;
static int[] coin;
static int[] dp;
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());
coin = new int[n];
dp = new int[k+1];
for(int i = 0; i < n; i++) {
coin[i] = Integer.parseInt(br.readLine());
}
dp[0] = 1;
for(int i = 0; i < n; i++) {
for(int j = coin[i]; j <= k; j++) {
dp[j] += dp[j - coin[i]];
}
}
System.out.println(dp[k]);
}
}
💡 Learned 아이디어
package baekjoon;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
// 동전 1
public class BJ2293 {
static int n;
static int k;
static int[] coin;
static int[] dp;
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());
coin = new int[n];
dp = new int[k+1];
for(int i = 0; i < n; i++) {
coin[i] = Integer.parseInt(br.readLine());
}
dp[0] = 1;
for(int i = 0; i < n; i++) {
for(int j = coin[i]; j <= k; j++) {
dp[j] += dp[j - coin[i]];
}
}
System.out.println(dp[k]);
}
}
💡 Learned 아이디어
맞았습니다
他の解答を参考にして、一次元配列で修正することもできます.Reference
この問題について([BOJ]2293コイン1), 我々は、より多くの情報をここで見つけました https://velog.io/@ssoyeong/BOJ-2293-동전-1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol