728x90
반응형
https://www.acmicpc.net/problem/11726
11726번: 2×n 타일링
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
www.acmicpc.net
풀이
이 문제는 우선 규칙을 찾는 것이 먼저라고 생각들었다. 그래서 아래와 같이 일정 수까지 직접 구해보았다.
1 | 1 |
2 | 2 |
3 | 3 |
4 | 5 |
5 | 8 |
6 | 13 |
7 | 21 |
8 | 34 |
9 | 55 |
위의 표를 보면 2Xn의 크기를 타일링 하는 가지수는 (n-1) + (n-2)인것을 확인할 수 있다.
위에서 찾은 방법을 코드로 옮기면 아래와 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
n=int(input())
arr=[0]*1001
arr[1]=1
arr[2]=2
if n<3:
print(arr[n])
else:
a=3
while True:
arr[a]=arr[a-1]+arr[a-2]
if a==n:
print(arr[a]%10007)
break
a+=1
|
cs |
728x90
반응형
'Python3 > 백준 알고리즘' 카테고리의 다른 글
2022.03.06 [백준] (python 파이썬) DSLR (0) | 2022.03.06 |
---|---|
2022.03.05 [백준] (python 파이썬) 팩토리얼 0의 개수 (0) | 2022.03.05 |
2022.03.05 [백준] (python 파이썬) ATM (0) | 2022.03.05 |
2022.03.03 [백준] (python 파이썬) 경비원 (0) | 2022.03.03 |
2022.03.03 [백준] (python 파이썬) 1, 2, 3 더하기 (0) | 2022.03.03 |
댓글