Algorithm & Data Structures/Programers
Lv 2. 2xn타일링
Geisha
2024. 7. 20. 23:52
코드 흐름
- 코드 흐름이랄것도 없이 사실 너무나도 많이 만났던 문제이다. DP, 즉 동적계획법을 사용하여야 하는 풀이임을 이미 진작에 알고 있었고
- 0일때, 1일때, 2일때, 3일때 가능한 경우의 수만 잘 생각해본다면 사실 규칙을 발견할 수 있다.
- 아래 코드에 규칙이 담겨져 있다. arr[i]=(arr[i-1]+arr[i-2]) 이부분이다.
package Programmers;
class p2xn타일링 {
public int solution(int n) {
int[] arr = new int[n+1];
if(n <= 3)
return n;
for(int i = 0 ; i <= n ;i++)
{
if(i<=3){
arr[i] = i;
continue;
}
arr[i]=(arr[i-1]+arr[i-2])%1000000007;
}
return arr[n];
}
}