알고리즘/Python
[python] 백준 11726 - 2xn 타일링
제주도랏맨
2022. 3. 21. 18:59
출처 : 백준, https://www.acmicpc.net/problem/11726
11726번: 2×n 타일링
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
www.acmicpc.net
더보기
첫 번째 풀이 : 실패
if __name__ == '__main__':
n = int(input())
count_arr = [0] * (n+1)
count_arr[1] = 1
count_arr[2] = 2
for i in range(3, n+1):
count_arr[i] = count_arr[i-1] + count_arr[i-2]
print(count_arr[n] % 10007)
runtime 에러가 나길래 뭔가 했더니만 1일 때 예외처리 안해줬더라.
두 번째 풀이 : 성공
if __name__ == '__main__':
n = int(input())
count_arr = [0] * (n+1)
count_arr[1] = 1
try:
count_arr[2] = 2
except:
pass
for i in range(3, n+1):
count_arr[i] = count_arr[i-1] + count_arr[i-2]
print(count_arr[n] % 10007)
그냥 뭔가 엄청난 발견이 있는건 아니고.....
2x5까지 해보니까 count[i]= count[i-2] + count[i-1] (i>2), count[1] = 1, count[2] = 2더라......
점화식으로 표현할 수 있으니까 DP........
시간 복잡도
-
다른 사람의 풀이를 보면서 알게 된 점
-
고찰
-