-
[Baekjoon Online Judge] 10870번: 피보나치 수 5문제 풀이/Baekjoon Online Judge 2021. 2. 6. 16:21
요구사항
- 피보나치 수는 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 번째까지의 피보나치 수를 구한 뒤, 출력하여 해결하였다.
'문제 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
[Baekjoon Online Judge] 11655번: ROT13 (0) 2021.02.08 [Baekjoon Online Judge] 10844번: 쉬운 계단 수 (0) 2021.02.06 [Baekjoon Online Judge] 1912번: 연속합 (0) 2021.02.06 [Baekjoon Online Judge] 11053번: 가장 긴 증가하는 부분 수열 (0) 2021.02.06 [Baekjoon Online Judge] 1212번: 8진수 2진수 (0) 2021.02.05