#11726 - 2×n 타일링
2020. 10. 7. 13:54
문제
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.
아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
입력
첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)
출력
첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.
예시 입력 / 출력
예시 입력 | 예시 출력 |
2 | 2 |
9 | 55 |
풀이
#include <iostream>
using namespace std;
int DP[1001];
int solution(int n) {
DP[0] = 1;
DP[1] = 1;
for (int i = 2; i <= n; i++) {
DP[i] = DP[i - 1] + DP[i - 2];
DP[i] %= 10007;
}
return DP[n];
}
int main() {
int n;
cin >> n;
cout << solution(n);
return 0;
}
더보기
^ 기본 개념 이해
BOJ 11726 · 2×n 타일링
알고리즘 분류 : 다이나믹 프로그래밍 기초적인 DP 문제이다. 그림 이해를 통해 점화식을 만들고 구현하면 된다. D[N] : 2xN 사이즈의 직사각형을 1x2, 2x1 사각형으로 채우는 방법의 수 D[0] = D[1] = 1
rebas.kr
onecoke.tistory.com/entry/BOJ-%EB%B0%B1%EC%A4%80-11726-2xN-%ED%83%80%EC%9D%BC%EB%A7%81
^ 풀이 검토에 참고
BOJ 백준 11726 2xN 타일링
https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지..
onecoke.tistory.com
피드백
아니 처음에 분명 맞게 짰는데 안돌아가서 뭐지? 했다가 for문 변수설정 i로 해야되는 걸 n으로 해놨음 ㅋㅋㅋ
'BOJ Algorithm > Dynamic Programming' 카테고리의 다른 글
#11057 - 오르막 수 (0) | 2020.10.18 |
---|---|
#10844 - 쉬운 계단 수 (부제: 분명히 맞게 풀었는데...) (0) | 2020.10.10 |
#9095 - 1, 2, 3 더하기 (0) | 2020.10.07 |
#11727 - 2×n 타일링 2 (0) | 2020.10.07 |
#1463 - 1로 만들기 (0) | 2020.10.05 |