반응형
import java.util.Scanner;
public class Memoization {
static String[] memo;
static void recur(int n){
if (memo[n+1] != null)
System.out.print(memo[n+1]);
else{
if(n > 0){
recur(n - 1);
System.out.println(n);
recur(n - 2);
memo[n + 1] = memo[n] + n + "\n" + memo[n - 1];
}else{
memo[n + 1] = "";
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int x = sc.nextInt();
memo = new String[x+2];
recur(x);
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[JAVA] 팩토리얼 구하기 (재귀, 메모화) (0) | 2022.07.23 |
---|---|
[JAVA] 피보나치 수열 구하기 (재귀, 메모화) (0) | 2022.07.23 |
[JAVA] 최대공약수 찾기 (0) | 2022.07.23 |
[JAVA] 하노이 탑 알고리즘 (0) | 2022.07.23 |
[JAVA] 쉘정렬 (0) | 2022.07.23 |