[백준] 2133번: 타일 채우기 C++ 풀이
·
코딩테스트/백준(BOJ)
문제문제 분류다이나믹 프로그래밍(동적 프로그래밍)📌 풀이 방법먼저 N이 2로 나누어지지 않는 경우는 타일을 완벽하게 채울 수 없습니다.N을 천천히 늘려가며 칸수를 채우는 방식을 계산해보겠습니다. N=2, 방법 3가지는 아래와 같습니다.위 3가지 외에는 방법이 없으므로 dp[2] = 3입니다. N=4인 경우dp[2]: 2칸을 채우는 경우(3)dp[4] = dp[2] * dp[2] 로 나타낼 수 있습니다. N=6인 경우먼저, dp[4] * dp[2] 를 더합니다.이는 4칸의 블럭을 채우는 방법 * 2칸의 블럭을 채우는 방법입니다. 이후, 2칸을 먼저 채운 후 4칸을 채우는 방식인데, 이때 4칸을 채울 경우를 dp[4]로 계산하지 않고 '2' 로 계산합니다.이유는 dp[4]로 계산할 시 위에서 dp[4] *..