[백준] 11726번: 2×n 타일링 (python)

2024. 7. 11. 18:19·Study/algorithm
728x90
반응형

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


전형적인 DP 문제로 규칙을 찾아가면 되는 문제

n이 1000이하 값으로 크지 않기 때문에 1부터 모두 구해나가면 된다


 

규칙을 간단히 설명하면,

n = 1일때는 아래 그림과 같이 채울 수 있습니다.

 

n = 2일때는 아래 그림과 같이 채울 수 있습니다.

 

n = 3인 경우부터 규칙이 발생합니다. n = 1인 경우 뒤에 1 x 2 블록 두개를 쌓은 경우와 n = 2인 경우 뒤에 2 x 1 블록 한개를 쌓은 경우가 됩니다.

 

동일한 규칙으로 n = 4인 경우에는 n = 2인 경우 뒤에 1 x 2 블록 두개를 쌓은 경우와 n = 3인 경우 뒤에 2 x 1 블록 한개를 쌓은 경우가 됩니다.

 

 

따라서 n = (n - 2) + (n - 1) 의 규칙을 가지게 됩니다.

 

n = int(input())

dp = [0] * 1001
dp[1] = 1
dp[2] = 2
for i in range(3, n + 1):
    dp[i] = (dp[i - 1] + dp[i - 2]) % 10007
print(dp[n])

 

728x90
반응형

'Study > algorithm' 카테고리의 다른 글

[백준] 2468번: 안전 영역 (python)  (0) 2024.07.15
[백준] 11057번: 오르막 수 (python)  (0) 2024.07.14
[백준] 1463번: 1로 만들기 (python)  (0) 2024.07.11
[programmers] 단어 변환 (python)  (0) 2024.07.05
[programmers] 부대복귀 (python)  (0) 2024.07.04
'Study/algorithm' 카테고리의 다른 글
  • [백준] 2468번: 안전 영역 (python)
  • [백준] 11057번: 오르막 수 (python)
  • [백준] 1463번: 1로 만들기 (python)
  • [programmers] 단어 변환 (python)
성장형감자
성장형감자
공부 기록
    반응형
  • 성장형감자
    단순하게
    성장형감자
  • 전체
    오늘
    어제
    • Category (66)
      • Paper review (38)
        • 2D Object detection (11)
        • 3D Object detection (20)
        • 2D Segmentation (1)
        • 2D Classification (5)
        • 3D classification (1)
      • Programming (4)
        • Python (1)
        • Linux (3)
      • Project (0)
      • Study (24)
        • algorithm (20)
        • etc. (1)
        • Radar (3)
  • 인기 글

  • 블로그 메뉴

    • 홈
  • 250x250
  • hELLO· Designed By정상우.v4.10.0
성장형감자
[백준] 11726번: 2×n 타일링 (python)
상단으로

티스토리툴바