-
백준 2748번 피보나치 수열 동적계획법 활용 2가지 풀이 ( Java )Problem Solving/Java 2019. 10. 24. 05:47반응형
- Top-Down ( 재귀 함수 호출 ) 방식
1234567891011121314151617181920212223242526272829303132333435363738394041public class Main {static long[] memo;// 메모이제이션 배열 생성static long fibonacci(int n) {if(n<=1) {// 0과 1은 답을 구할 수 없는 가장 작은 수return n;}else {if(memo[n]>0) {// 메모 되어 있다면return memo[n];// 메모 값을 리턴}memo[n] = fibonacci(n-1) + fibonacci(n-2);// 재귀 호출 보내서 받은 값을 메모에 담고return memo[n];// 메모를 리턴}}public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));// reader writer 생성memo = new long[91];int n = Integer.parseInt(br.readLine());long answer = fibonacci(n);}}- Bottom-Up ( 반복문 활용 ) 방식
12345678910111213141516171819202122232425public class FibonacciNumber2BottomUp {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));// reader writer 생성int n = Integer.parseInt(br.readLine());long[] fibonacci = new long[91];fibonacci[0] = 0;fibonacci[1] = 1;for (int i = 2; i <= n; i++) {fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2];}}}반응형'Problem Solving > Java' 카테고리의 다른 글
백준 11726 2xn 타일링 동적계획법 활용 2가지 풀이 ( Java ) (3) 2019.10.24 백준 1463번 1로 만들기 동적계획법 활용 2가지 풀이 ( Java ) (0) 2019.10.24 백준 17103 골드바흐 파티션 문제풀이 ( Java ) (0) 2019.10.22 백준 17087 숨바꼭질 6 문제풀이 ( Java ) (0) 2019.10.22 백준 9613 GCD합 문제 풀이 ( Java ) (0) 2019.10.22