반응형
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
long[] dp;
public void solution() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
dp = new long[91];
dp[1] = 1;
dp[2] = 1;
dp[3] = 2;
for(int i=4; i<=n; i++){
dp[i] = dp[i-1] + dp[i-2];
}
System.out.println(dp[n]);
}
public static void main(String args[]) throws IOException {
new Main().solution();
}
}
dp를 활용한다.
dp[i] = dp[i-1] + dp[i-2];
피보나치수열 점화식이 성립된다.
주어진 n의 최댓값 90은 int의 범위를 넘기 때문에 long으로 선언해준다.
반응형
'개발 > 알고리즘' 카테고리의 다른 글
백준 14002번 : 가장 긴 증가하는 부분 수열 4 (0) | 2023.02.21 |
---|---|
백준 11053번 : 가장 긴 증가하는 부분 수열 (0) | 2023.02.09 |
백준 16194번 : 카드 구매하기 2 (0) | 2023.02.02 |
백준 11052번 : 카드 구매하기 (0) | 2023.02.02 |
백준 11727번 : 2xn 타일링 2 (0) | 2023.01.27 |