홍우진의 개발 일기장

[백준] 11726번: 2×n 타일링/ 파이썬 본문

알고리즘/백준

[백준] 11726번: 2×n 타일링/ 파이썬

홍우진 2022. 7. 28. 20:13
728x90
반응형

문제 링크


https://www.acmicpc.net/problem/11726

 

11726번: 2×n 타일링

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

www.acmicpc.net

 

풀이 코드


n = int(input())

dp = [0 for _ in range(n+1)]

if n <= 3 : print(n)
else : 
	dp[1] = 1
	dp[2] = 2
	for i in range(3, n+1):
		dp[i] = dp[i-1] + dp[i-2]

	print(dp[i]%10007)

코드 해석


다이나믹 프로그래밍 (DP) 문제이다.

 

우선 규칙을 찾는다.

규칙은 n의 방법의 수는 n-1 + n-2 이다.

n-1은 세워져있는 타일 한개가 붙는 경우,

n-2는 타일 두개가 붙는 경우이다.

 

그 후 dp형식으로 문제를 해결한다.

 

728x90
반응형
Comments