https://www.acmicpc.net/problem/2747
import java.util.Scanner;
public class feb05 {
//BOJ 2747 피보나치수
public static int arr[];
//피보나치 함수를 재귀함수로 구현한다.
public static int fibo(int num) {
// 종료조건(1 혹은 2일 때 1 반환)
if(num==1||num==2) {
return 1;
}
// 한 번 계산한 적 있으면 그 값 반환
else if(arr[num]!=0) {
return arr[num];
}
// 계산한 적 없으면 점화식에 따라 계산
else {
arr[num]=fibo(num-1)+fibo(num-2);
return arr[num];
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s=new Scanner(System.in);
int number=s.nextInt();
arr=new int[number+1];
System.out.print(fibo(number));
}
}
다이나믹 프로그래밍을 공부하며 풀어보았다.
'JAVA > 백준' 카테고리의 다른 글
[백준/자바] 15312번 이름궁합 (0) | 2022.02.05 |
---|---|
[백준/자바] 2748번 피보나치수2 (0) | 2022.02.05 |
[백준/자바] 12605번 단어순서 뒤집기 (0) | 2022.02.01 |
[백준/자바] 2750번 수 정렬하기 (0) | 2022.01.31 |
[백준/자바] 11557번 Yangjojang of The Year (0) | 2022.01.30 |
댓글