반응형
import java.util.Scanner;
public class Pivonacci {
static long[] memo;
static long f(int n){
if (n <= 1) // 구하려는 값이 f(1) 이면 1을 반납
return n;
else if(memo[n] != 0) // 메모에 구하려는 f( )값이 있으면 그값 리턴
return memo[n];
else //f(n - 1) + f(n - 2)를 구한값을 메모에 저장
return memo[n] = f(n - 1) + f(n - 2);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int x = sc.nextInt();
memo = new long[x+1];
System.out.println(f(x));
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[python] 백준 알고리즘 2525 오븐 시계 (0) | 2022.07.25 |
---|---|
[JAVA] 팩토리얼 구하기 (재귀, 메모화) (0) | 2022.07.23 |
[JAVA] 재귀함수 메모화 (0) | 2022.07.23 |
[JAVA] 최대공약수 찾기 (0) | 2022.07.23 |
[JAVA] 하노이 탑 알고리즘 (0) | 2022.07.23 |