https://www.acmicpc.net/problem/11727
11727번: 2×n 타일링 2
2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다.
www.acmicpc.net
n=int(input())
if n==1:
print(1)
else:
dp=[0 for _ in range(n+1)]
dp[1]=1;dp[2]=3
for i in range(3,n+1):
if i%2==1: #홀수
dp[i]=((dp[i-2]*4)+1)%10007
else: #짝수
dp[i]=((dp[i-2]*4)-1)%10007
print(dp[n])
n이 1일때 for 문에서 index out of range가 뜬다는 사실을 모르고 제출했다가 틀렸음..
이후 1일때 어떻게 처리할까 고민하다 if else을 이용해 풀었고 다행히 정답처리!
728x90
'파이썬알고리즘' 카테고리의 다른 글
20210705#(59) 책-이것이 취업을 위한 코딩 테스트다 with 파이썬 (그리디, 구현 총 4문제 풀이) (0) | 2021.07.05 |
---|---|
20210703#(58) 백준 10828번 스택 (0) | 2021.07.03 |
20210702#(56) 백준 1149번 RGB거리 (다이나믹 프로그래밍) (0) | 2021.07.02 |
20210702#(55) 프로그래머스 가장 큰 수 (정렬) (0) | 2021.07.02 |
20210702#(54) 백준 2309 일곱 난쟁이 (브루트포스) (0) | 2021.07.02 |