본문 바로가기

문제 풀이/Programmers

[프로그래머스] 2 x n 타일링 (JAVA)

문제 출처 - Programmers

문제는 여기


[풀이]

1. 규칙을 보면 피보나치와 동일하게 값이 늘어나는 것을 알 수 있다.

2. 0, 1, 2에 각각 해당하는 값을 넣고 이후로는 피보나치를 dp로 구현한다.

3. 마지막 값을 출력한다.

[접근]

1. dp를 사용해서 문제를 해결해야겠다고 생각하였다.

[코드]

class Solution {
    public int solution(int n) {
        int[] dp = new int[60001];
		
		dp[0] = 0;
		dp[1] = 1;
		dp[2] = 2;
		
		for (int i = 3; i <= n; i++) {
			dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007;
		}

        return dp[n];
    }
}