白駿9095号(Java)
DPの数字を検索
DPを使って白駿9095号をJavaに解読します.
これは簡単なDP問題で、問題を見るとすぐに解決してしまうのですが、正直、もっと大量に加わるときにも一定の保証があるのかどうか迷っています.
まず提出してから、他のコードを見て、よく考えてみると、私たちが使える数字は1,2,3
に固定されています.したがって、n
を作成するには、以下の3つのケースのみを考慮すればよい.
n-3
+ 3
n-2
+ 2
n-1
+ 1
dp[n]
= dp[n-1]
+ dp[n-2]
+ dp[n-3]
次は私が提出したコードです.import java.util.*;
import java.io.*;
public class boj9095 {
static int T,n,dp[] = new int[11];
static int DP(int n){
if(dp[n]!=0) return dp[n];
else{
for(int i=4; i<n+1; i++)
dp[i] = dp[i-1] + dp[i-2] + dp[i-3];
return dp[n];
}
}
public static void main(String args[]) throws IOException{
BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stk = new StringTokenizer(bfr.readLine());
T = Integer.parseInt(stk.nextToken());
dp[1] = 1; dp[2] = 2; dp[3] = 4;
for(int i=0; i<T; i++){
stk = new StringTokenizer(bfr.readLine());
n = Integer.parseInt(stk.nextToken());
System.out.println(DP(n));
}
}
}
Reference
この問題について(白駿9095号(Java)), 我々は、より多くの情報をここで見つけました https://velog.io/@topqr123q/백준-9095번-자바テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol