알고리즘 풀이/프로그래머스

프로그래머스 - 멀리 뛰기 (DP)

배게 2019. 11. 28. 04:12
728x90

테케 1번을 자꾸 못 뚫어서 뭐지 싶었는데 


long[] dp = new int[n+1]의 메모리 때문에 통과를 못한 것 같다.


long변수 3개 (answer, a, b) 만들어서 그냥 돌려써야함




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public long solution(int n) {
        long answer = 1;
        long a = 1, b = 2;
        if (n == 1)
            return 1;
        if (n == 2)
            return 2;
        // long dp[] = new long[n+1];
        // dp[1]=1;
        // dp[2]=2;
 
        for (int i = 3; i <= n; i++) {
            // dp[i] = (dp[i-2] + dp[i-1])%1234567;
            answer = (a + b) % 1234567;
            a = b;
            b = answer;
        }
        // answer=dp[n]%1234567;
 
        return answer;
    }
cs