heheh
히히
heheh
전체 방문자
오늘
어제
  • 히히 (75)
    • AI (14)
      • Model (Study) (3)
      • Model (Paper) (7)
      • Tip! (4)
    • Backend (3)
      • ASP.NET (1)
      • Spring (2)
      • program (0)
      • JAVA (0)
    • Program (11)
      • Docker (3)
      • Github (5)
      • AWS (3)
    • OS (1)
      • Window (1)
      • Linux (0)
    • Python (14)
      • Python Lib (11)
      • Pytorch (1)
      • Tensorflow (1)
      • 크롤링 (1)
    • Spark (3)
      • Scala (2)
      • Pyspark (0)
      • SQL (1)
    • IOS (Swift) (0)
      • 기본 개념 (0)
    • 프로젝트 (3)
      • [AI] GAN (0)
      • [IOS] Swift (3)
      • [AI] 추천시스템 (0)
    • 분석 (1)
    • 알고리즘 풀이 (22)
      • 백준 (22)
    • 기타 (3)
      • 장비세팅 (3)
      • 소개 (0)

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
heheh

히히

백준 11712번 : 2×n 타일링 2 (Python)
알고리즘 풀이/백준

백준 11712번 : 2×n 타일링 2 (Python)

2021. 2. 7. 16:05

문제 : www.acmicpc.net/problem/11727

 

11727번: 2×n 타일링 2

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

www.acmicpc.net

 

풀이

기본적으로 타일을 나누어야 할 단위는 2*2 모양이다.

2*2 크기에 타일링이 가능한 경우의 수는 3이다.

하지만 이 경우 1*2 + 2*_인 경우만 고려되고

2*_ + 1*2인 위 그림과 같은 경우를 고려하지 못한다. 따라서 위 경우는 2가지가 가능하므로 n-3의 경우의 수에  2를 곱한값을 더해준다.

 

n = int(input())

dp = [0, 1, 3, 5]

for i in range(4, n+1):
    dp.append((dp[i-3]*2 + dp[i-2]*3)%10007)

print(dp[n])

'알고리즘 풀이 > 백준' 카테고리의 다른 글

백준 2193번 : 이친수 (Python)  (0) 2021.02.16
백준 14501번 : 퇴사 (Python)  (0) 2021.02.08
백준 1010번 : 다리 놓기 (Python)  (0) 2021.02.06
백준 9461번 : 파도반 수열 (Python)  (0) 2021.02.06
백준 1932번 : 정수 삼각형 (Python)  (0) 2021.02.04
    heheh
    heheh

    티스토리툴바