알고리즘/백준

11726_2×n 타일링

베리영young 2025. 1. 21. 17:44

사용 알고리즘: DP

사용 언어: java

 

package week33;

import java.io.*;
import java.util.*;

public class Main {

	public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		
		int[][] dp = new int[n+1][3];
		dp[1][1] = 1;
		dp[1][2] = 0;
		if(n == 1) {
			System.out.println(1);
			return;
		}
		dp[2][1] = 1;
		dp[2][2] = 1;
//		dp[3][1] = 1+1; //dp[i-1][1] + dp[i-1][2]
//		dp[3][2] = 1; //dp[i-2][1] + dp[i-2][2]
		
		for(int i=3; i<n+1; i++) {
			dp[i][1] = (dp[i-1][1] + dp[i-1][2]) % 10007;
			dp[i][2] = (dp[i-2][1] + dp[i-2][2]) % 10007;
		}
		
		System.out.println((dp[n][1] + dp[n][2]) % 10007);
	}

}

 

 

그으으 이렇게 이차원으로 풀지 않으면 내 머리론 이해가 잘 안 된다.

풀었음 됐지 머