티스토리 뷰

백준

백준 11727 문제풀이 [python]

ys.k 2023. 6. 23. 15:09

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

기존에 풀었던 2 x n 타일링 1에서 2x2 도형이 하나 추가되었다.

 

처음에 완전히 잘못 접근했다.

 

그래서 이번 문제를 푸는 데에는 오랜 시간이 걸렸고, 다른 블로그의 글을 참고했다.

 

여러 블로그를 돌아도 풀이에 이해가 되지 않았는데, 단 한 블로그만이 나를 이해시켰다.

 

굉장히 잘하시는 분 같다.

 

혹시 나와 같은 분들이라면 아래 링크를 통해 직접 방문해 보길 추천한다.

https://changsroad.tistory.com/104

 

[Python] 백준 #11727- 2xn타일링 2

문제 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 코드 My answer n=

changsroad.tistory.com

 

요약하면, 점화식은 n[i] = n [i-1] + (n [i-2] x 2) 이 도출된다.

 

해당 점화식을 풀어 설명해 보겠다.

 

n [i] = n [i-1]의 도형에 1 x 2 도형이 우측에 붙는다 + n [i-2]의 도형에 = 도형과 ㅁ 도형이 우측에 붙는다 

부디 이 종이 한 장이 설명이 되었기를 바라며.

 

코드

 
import sys
input = sys.stdin.readline

n = int(input())
dp = [1,3,5] * 334

for i in range(2, n+1):
    dp[i] = dp[i-1] + 2 * dp[i-2]

print(dp[n-1]%10007)

'백준' 카테고리의 다른 글

백준 2748 문제풀이 [python]  (0) 2023.06.23
백준 10952 문제풀이 [python]  (0) 2023.06.23
백준 1026 문제풀이 [python]  (0) 2023.06.23
백준 1193 문제풀이 [python]  (0) 2023.06.22
백준 2606 문제풀이 [python]  (0) 2023.06.21
댓글