https://www.acmicpc.net/problem/11727

 

11727번: 2×n 타일링 2

2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다.

www.acmicpc.net

JW 

 

#include "bits/stdc++.h"
using namespace std;
// 2*n 타일링 2
int dp[1001];
int recursive(int n) {
    if (n == 1) return 1;
    if (n == 2) return 3;
    if (dp[n] != 0) {
        return dp[n];
    }
    dp[n] = recursive(n-1)%10007 + 2*recursive(n-2)%10007;
    return dp[n];
}

int main() {
    int n;
    cin >> n;
    printf("%d", recursive(n)%10007);
}

 

 

'정보올림피아드-KOI > BOJ' 카테고리의 다른 글

백준 숨바꼭질 4 (역추적)  (0) 2022.03.14
백준 일곱 난쟁이  (0) 2022.03.14
백준 꿀따기 21758번 (11점 )  (0) 2022.03.11
백준 균형잡힌 세상  (0) 2022.03.07
백준 소수 구하기 1929  (0) 2022.03.07

JW 학생

 

https://www.acmicpc.net/problem/11726

 

11726번: 2×n 타일링

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

www.acmicpc.net

#include "bits/stdc++.h"
using namespace std;
// 2*n 타일링
int dp[1001];
int recursive(int n) {
    if (n == 1 || n == 2) return n;
    if (dp[n] != 0) {
        return dp[n];
    }
    dp[n] = recursive(n-1)%10007 + recursive(n-2)%10007;
    return dp[n];
}

int main() {
    int n;
    cin >> n;
    printf("%d", recursive(n)%10007);
}

+ Recent posts