Fibonacci Number
class Solution {
public int fib(int n) {
// 재귀 호출을 이용하면 됨
// Base Case
// n = 0일때, return 0
if (n == 0) {
return 0;
// n < 3 일때 return 1 (어짜피 n = 2도 1을 리턴해야하기에 걍 n = 1이랑 같이 묶어줌)
} else if (n < 3) {
return 1;
// else 구문으로 Rerruence Case 만들어줌
// return fib(n - 1) + fib(n - 2)
} else {
return fib(n - 1) + fib(n - 2);
}
}
}
class Solution {
// 재귀 함수 밖에 저장됨
// 피보나치 수를 저장하는 데 사용됨
int fibseq[] = new int[31];
public int fib(int n) {
// n이 0이나 1일 경우 n을 그대로 반환
if (n <= 1) return n;
// fibseq[n]의 값이 있고, n이 0보다 크면
// 즉, 이미 계산된 값이 배열에 저장되어 있으면 fibseq[n] 반환
// 이 과정에서 중복 피함
if (fibseq[n] != 0 && n > 0) return fibseq[n];
// fibseq[n]에 값이 저장되어 있지 않다면 새로 계산한 후 return
fibseq[n] = fib(n-1) + fib(n-2);
return fibseq[n];
}
}
#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL