강의로 돌아가기
김수현

효율성테스트에서 4번이 계속 시간초과 뜨네요 ㅠㅠ

.

작성중인 코드―Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Solution {

    long[] cache = new long[100001];

    public long solution(int N) {
        long answer = 0;
        long[] tile = new long[N];
        long a = 0;
        for (int i = 0; i < N; i++) {
            tile[i] = fibo(i + 1);
        }

        a = 4 * tile[N - 1] + 2 * tile[N - 2];
        answer = a;
        return answer;
    }

    private long fibo(int a) {


        if (a <= 2) {
            return 1;
        }
        if (cache[a] != 0) {
            return cache[a];
        } else {
            cache[a] = fibo(a - 1) + fibo(a - 2);
            return cache[a];
        }
    }
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.