알고리즘 문제풀이/백준

#2747 : 피보나치 수

모항 2022. 1. 22. 01:09

풀이방법

2022.01.22

재귀함수로 구현하면 제한시간 1초 내에 해결할 수 없는 문제이다.

반복문을 사용해 정수 배열에 피보나치 수들을 미리 저장해놓고 꺼내쓰면 빠르게 해결할 수 있다.

n<= 45이므로 45번째 피보나치 수까지만 구해놓으면 된다.

 

코드

Java(2022.01.22)

import java.io.*;

public class Main {
	
	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		
		int[] fib = new int[45];
		fib[0] = 1;
		fib[1] = 1;
		
		for(int i = 2; i<45; i++) {
			fib[i] = fib[i-1] + fib[i-2];
		}
		
		System.out.print(fib[n-1]);		
	}
}
더보기

재귀함수로 구현할 경우

import java.io.*;

public class Main {

	public static int fib(int n) {
		if(n <= 2) return 1;
		else return fib(n-1) + fib(n-2);
	}
	
	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		System.out.print(fib(n));		
	}
}

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

#11053 : 가장 긴 증가하는 부분수열  (0) 2022.01.26
#11047 : 동전 0  (0) 2022.01.24
#11048 : 이동하기  (0) 2022.01.22
#1764 : 듣보잡  (0) 2022.01.21
#11091 : 알파벳 전부 쓰기  (0) 2022.01.21