문제 풀이/Baekjoon Online Judge

[Baekjoon Online Judge] 10870번: 피보나치 수 5

hyeonic 2021. 2. 6. 16:21
 

10870번: 피보나치 수 5

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net

요구사항

 - 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.

 - 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.

입력

 - 첫째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다.

출력

 - 첫째 줄에 n번째 피보나치 수를 출력한다.


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Baekjoon10870 {

    public static void main(String[] args) throws IOException {

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(bufferedReader.readLine());
        int[] dp = new int[n + 1];

        for (int i = 0; i <= n; i++) {
            if (i == 0) dp[i] = 0;
            else if (i == 1) dp[i] = 1;
            else dp[i] = dp[i - 1] + dp[i - 2];
        }

        System.out.println(dp[n]);

        bufferedReader.close();
    }
}

 

 다이나믹 프로그래밍을 활용한 아주 간단한 피보나치 수 문제이다. 입력 받은 n 번째까지의 피보나치 수를 구한 뒤, 출력하여 해결하였다.