https://www.acmicpc.net/problem/2748
코드설명
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 |