본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 1003 피보나치 함수

by 까망 하르방 2021. 2. 18.
반응형

출처: https://www.acmicpc.net/problem/1003

 Input 
3
0
1
3  

 Output 

1 0
0 1
1 2

재귀를 이용하는 경우 시간 초과나기 때문에 반복문을 이용하여 구현

 

 

[수학] 피보나치 수열 구현 (재귀, DP)

피보나치 수열(Fibonacci Numbers)이란? 1 → 1 → 2 → 3 → 5 → 8 → 13 → 21 → 34 → 55 → 89 → 144 → 233 점화식으로 표현하면 다음과 같다. 이를 구현하는 방법은 크게 다..

zoosso.tistory.com

[문제 풀이]

(0호출, 1호출)을 분석해보면

N=0 일 때, (1, 0) / N=1 일 때, (0, 1)까지를 기본(base)항으로 둔다.

다음항부터 (1, 1)  (1, 2) → (2, 3)  (3, 5) → ( X[n-1] + X[n-2], Y[n-1] + Y[n-2] ) 점화식 이용.


import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
         
        int T = Integer.parseInt(sc.nextLine());
         
        int[][] result = new int[41][2];
 
    // 기본항 설정
        result[0][0] = 1; result[0][1] = 0;
        result[1][0] = 0; result[1][1] = 1;
 
    // Dynamic
        for(int x=2; x<41; x++) {
            for(int y=0; y<=1; y++) {
                result[x][y] = result[x-1][y] + result[x-2][y];
            }
        }
         
        // Test Case
        int[] n = new int[T];
        for(int i=0; i<T; i++) {
            n[i] = Integer.parseInt(sc.nextLine());
        }
         
        // solution 출력      
        for(int i=0; i < T; i++) {
            System.out.println( result[n[i]][0]+ " " + result[n[i]][1] );
        }  
    }
}

 

반응형

'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 2447 별찍기 - 10  (2) 2021.02.18
[BOJ] 백준 2448 별찍기 - 11  (2) 2021.02.18
[BOJ] 백준 2577 숫자의 개수  (0) 2021.02.17
[BOJ] 백준 2487 섞기 수열  (0) 2021.02.17
[BOJ] 백준 7578 공장  (0) 2021.02.17

댓글