발자취
[백준 / C++] Day90. 2xn 타일링 본문
2024. 09. 01 - 코딩테스트 스터디 Day90
01. 문제
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.
아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

02. 입력
첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)
03. 출
첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.
04-1. 예제 입력 1
2
04-2. 예제 출력 1
2
05-1. 예제 입력 2
9
05-2. 예제 출력 2
55
6. 풀이 및 답
n에 따른 2×n 크기의 직사각형을 채우는 방법의 수는 아래와 같다
n = 1 → dp[1] = 1
n = 2 → dp[2] = 2
n = 3 → dp[3] = 3
n = 4 → dp[4] = 5
n = 5 → dp[5] = 8
위 결과를 통해 아래와 같은 점화식을 구할 수 있다
dp[i] = dp[i - 1] + dp[i - 2]
#include <iostream>
using namespace std;
int main() {
int dp[100001];
int n;
cin >> n;
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i <= n; i++) {
dp[i] = (dp[i - 1] + dp[i - 2]) % 10007;
}
cout << dp[n];
return 0;
}위 점화식을 가지고 코드를 작성해보았다.

정답!

'코딩테스트 > Daily Coding (C, C++)' 카테고리의 다른 글
| [백준 / C++] Day91. 파일 합치기 (11066) (0) | 2024.09.01 |
|---|---|
| [백준 / C++] Day89. 가장 긴 감소하는 부분 수열 (0) | 2024.08.31 |
| [백준 / C++] Day88. 퇴사 2 (0) | 2024.08.30 |
| [프로그래머스 Lv.3 / C++] Day87. 등굣길 (0) | 2024.08.29 |
| [프로그래머스 Lv.3 / C++] Day86. 정수 삼각형 (0) | 2024.08.28 |