Skills/Algorithm

[프로그래머스] 12945번: 피보나치 수 (JAVA)

개발자 윤구나 2023. 8. 11. 11:53
// [0, 1, ... 그 이전에 존재하던 수들을 서로 더해서 표현한 수]
// [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...]

class Solution {
    public int solution(int n) {
        // F(0) -> 0
        // F(1) -> 1
        // F(2) -> F(0) + F(1)
        // F(3) -> F(1) + F(2)
        // 이거 하나씩을 인덱스로 볼 수 있다.
        int[] memo = new int[n + 1]; // 입력을 받아주는 n+1(끝 인덱스가 n이 되는 배열)
        for (int i = 0; i <= n; i++) {
            if (i == 0 || i == 1) {
                memo[i] = i;
            } else {
                int sum = memo[i - 2] + memo[i - 1];
                memo[i] = sum % 1234567;
            }
        }
        return memo[n]; // 0~n (n-1 => n)
    }
}