백준 2193번 : 이친수

반응형

https://www.acmicpc.net/problem/2193

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으로 선언해준다.

반응형