Baek Junアルゴリズム1003
19180 ワード
動的プランニング:最初に行われた演算を記録し、すでに行われている演算であれば、再演算ではなく記録された値を取得します.
最初のコミット
計算された重複文と出力された重複文を区別しないでください.
Javaが二重に並んでいるとは思いませんでした
最初のコミット
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static int fibo0;
static int fibo1;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int test = Integer.parseInt(br.readLine());
int[] tests = new int[test];
for(int i=0; i<test; i++){
tests[i] = Integer.parseInt(br.readLine());
}
for(int result : tests){
fibo0 = 0;
fibo1 = 0;
fibonacci(result);
System.out.println(fibo0 + " " + fibo1);
}
}
static int fibonacci(int n) {
if( n == 0 ){
fibo0++;
return 0;
}
if( n == 1 ){
fibo1++;
return 1;
}
return fibonacci(n-1) + fibonacci(n-2);
}
}
時間が過ぎた.では、以前に計算した値の再計算を避けるために、出力0と1の回数を保存します.import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static Integer[][] dp = new Integer[41][2];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
dp[0][0] = 1; //T=0일때 0호출 횟수
dp[0][1] = 0; //T=0일때 1호출 횟수
dp[1][0] = 0; //T=1일때 0호출 횟수
dp[1][1] = 1; //T=1일때 0호출 횟수
while(T-- > 0){
int N = Integer.parseInt(br.readLine());
fibonacci(N);
sb.append(dp[N][0] + " " + dp[N][1]).append("\n");
}
System.out.println(sb);
}
static Integer[] fibonacci(int T) {
if( dp[T][0] == null || dp[T][1] == null) {
// 각 N에 대한 0 호출 횟수와 1 호출 횟수를 재귀호출한다.
dp[T][0] = fibonacci(T - 1)[0] + fibonacci(T - 2)[0];
dp[T][1] = fibonacci(T - 1)[1] + fibonacci(T - 2)[1];
}
return dp[T];
}
}
StringBuilderでセットして、後で印刷すればいいです.計算された重複文と出力された重複文を区別しないでください.
Javaが二重に並んでいるとは思いませんでした
Reference
この問題について(Baek Junアルゴリズム1003), 我々は、より多くの情報をここで見つけました https://velog.io/@kot8585/백준-알고리즘-1003テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol