Problem
https://www.acmicpc.net/problem/11726
Solution
1
2
3
4
5
6
7
8
9
10
11
import math
sol=0
x = int(input())
for n in range(0,x+1):
while (x-n)%2==0:
y = (x-n)//2
sol += math.factorial(n+y)//(math.factorial(n)*math.factorial(y))
break
print(sol%10007)
Memo
1x2 타일을 a, 2x1 타일을 b라 할 때, b의 개수별로 케이스를 나눠서 경우의 수를 구하였다. 각 경우의 수는 ‘같은 것이 있는 순열’의 공식을 활용하였다.