Posts [알고리즘] 프로그래머스 - 2 x n 타일링
Post
Cancel

[알고리즘] 프로그래머스 - 2 x n 타일링


문제

가로길이가 2이고 세로길이가 1인 직사각형 모양의 타일이 있다.
이 타일을 이용하여 세로길이가 2이고 가로길이가 n인 바닥을 가득 채우는 경우의 수 구하기 n은 60,000이하의 자연수
경우의 수를 1,000,000,007로 나눈 나머지를 반환


입출력 예시

nresult
45


접근

DP 기본 문제이다.
d[n] 의 타일링 방법은 d[n-1]의 방법들의 마지막에 세로 타일을 하나씩 추가하는 것과
d[n-2]의 방법들의 마지막에 가로타일 2개를 추가하는 방법을 더한 것이다.


코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
def solution(n):
    d = [0 for _ in range(n+2)]
    d[1] = 1
    d[2] = 2

    for i in range(3, n+1):
        d[i] = (d[i-1] + d[i-2]) % 1000000007

    return d[n]


This post is licensed under CC BY 4.0 by the author.

[알고리즘] 프로그래머스 - N-Queen

[알고리즘] 프로그래머스 - 등굣길