-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Algorithm] 2×n 타일링 #188
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
💬 문제
https://www.acmicpc.net/problem/11726
💬 Idea
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하자.
주어지는 직사각형의 너비 길이가 길어짐에 따라
이를 2x1, 1x2의 작은 단위 조합으로 쪼개어 본다면 규칙을 찾을 수 있다.
다음 그림을 보자.
기본적으로
2x1 크기의 직사각형은 2x1 타일 1개로만 채워질 수 있기에 1가지의 방법을 갖고
2x2 크기의 직사각형은 2x1 타일 2개 또는 1x2 타일 2개로 채워질 수 있기에 2가지의 방법을 갖는다.
다음으로 2x3 크기의 직사각형을 채우는 방법의 수를 알아보자.
2x3 크기의 직사각형을 2x1 과 1x2를 기준으로 쪼개어 본다면 아래 두 개의 조합이 나온다.
따라서 두 개의 조합의 가지수를 더하면 2x3 크기의 직사각형을 채울 수 있는 방법의 수를 도출할 수 있다.
2x3 크기의 직사각형을 채울 수 있는 방법의 수: 2 + 1 = 3
다음으로 2x4 크기의 직사각형을 채우는 방법의 수를 알아보자.
2x4 크기의 직사각형을 2x1 과 1x2를 기준으로 쪼개어 본다면 아래 두 개의 조합이 나온다.
따라서 두 개의 조합의 가지수를 더하여 2x4 크기의 직사각형을 채울 수 있는 방법의 수를 도출할 수 있다.
2x4 크기의 직사각형을 채울 수 있는 방법의 수: 3 + 2 = 5
이렇게 직사각형을 쪼개어 생각해볼 수 있고 단계를 반복할 수록 아래와 같은 규칙을 따른다.
즉 2xn의 직사각형 을 1x2, 2x1의 타일로 채울 수 있는 방법의 수를 알기 위해서는
→ 이전 두개의 항 각각의 방법의 개수를 알고 있다면 해결할 수 있게 된다.
점화식으로 표현해본다면 아래와 같다.
💬 풀이
The text was updated successfully, but these errors were encountered: