728x90

재귀를 이용한 방법
public int fibonacci(int N) {
// f(1) = 1
// f(2) = 2
// 종료 조건
if (N <= 2) {
return N;
}
return fibonacci(N - 1) + fibonacci(N - 2);
}
반복문을 이용한 방법
public int fibonacci(int N) {
int a = 1, b = 2;
if (N == 1) {
return a;
}
for (int i = 3; i <= N; i++) {
int temp = a + b;
a = b;
b = temp;
}
return b;
}
DP를 이용한 방법
public int fibonacci(int N) {
int[] dp = new int[N+1];
dp[1] = 1; dp[2] = 1;
for (int i = 3; i <= N; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
return dp[N];
}
'Algorithm' 카테고리의 다른 글
연결 리스트 (0) | 2022.12.15 |
---|---|
Java 버블 정렬, 삽입 정렬, 선택 정렬 (0) | 2022.10.28 |
Java 순열과 조합 (0) | 2022.10.26 |
소수 구하기 (0) | 2022.09.25 |
기초 수학 (0) | 2022.09.20 |