21.08.07 기록
백준 알고리즘 10870 풀이
🎆나의 풀이(메모리 14.2MB, 시간 136ms로 통과)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class B10870 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int res = fibonacci(Integer.parseInt(br.readLine()));
System.out.println(res);
}
public static int fibonacci(int N) {
if(N == 0) { return 0; }
if(N == 1) { return 1; }
return (fibonacci(N-1) + fibonacci(N-2));
}
}
🎆해설(메모리 14.2MB, 시간 136ms로 통과)
-해설에서는 재귀와 배열 총 두 가지 방법으로 풀이했다.
-아래는 배열로 푼 풀이이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class B10870 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] fibonacci = new int[N+1];
for(int i = 0; i < fibonacci.length; i++) {
if(i == 0) { fibonacci[i] = 0; }
else if(i == 1) { fibonacci[i] = 1; }
else { fibonacci[i] = (fibonacci[i-1] + fibonacci[i-2]); }
}
System.out.println(fibonacci[N]);
}
}