https://www.acmicpc.net/problem/2748
2748번: 피보나치 수 2
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
코드설명
DP를 활용하는 문제입니다.
이 문제같은경우,
1. TOP-DOWN 방식의 재귀함수사용
2. BOTTOM-UP 방식의 배열함수 사용
위의 2가지 방법이 있는데, BOTTOM-UP 방식의 배열함수를 사용하여 진행해보았습니다.
코드
BOTTOM-UP 방식의 배열함수 사용
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static int T, N; public static int answer = 0; public static long[] dp; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); // T = Integer.parseInt(st.nextToken()); dp = new long[91]; dp[0] = 0; dp[1] = 1; for(int i=2;i<91;i++) { dp[i] = dp[i-1] + dp[i-2]; } System.out.println(dp[Integer.parseInt(st.nextToken())]); } }
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 9655 돌 게임 - 동적계획법(Dynamic Programming, DP) + 게임이론(Game Theory) JAVA (0) | 2023.08.17 |
---|---|
[백준] 1010 다리 놓기 - DP JAVA (0) | 2023.08.17 |
[백준] 1003 피보나치 함수 - DP(Dynamic Programming, 동적계획법) JAVA (0) | 2023.08.16 |
[백준] 108710 피보나치 수 5 - DP JAVA (0) | 2023.08.16 |
[백준] 14891 톱니바퀴 - 구현 + 시뮬레이션 JAVA (0) | 2023.08.15 |