문제
https://school.programmers.co.kr/learn/courses/30/lessons/12900
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
입출력

해설
타일링 문제이고 전형적인 DP문제이다.
문제에서 주어지는 타일은 2 * 1, 1 * 2 타일 2가지이다.
그럼 만들 수 있는 모양의 가짓수는 이전의 모양에서 1 * 2를 사용하여 만드는 것과 2 * 1 모양 2개를 이용하여 만드는 방법이 있다.
DP[i] := 2 * i 타일을 채우는 가짓 수
라고 할 때

위 그림 같은 2가지 방법이 있다.
DP[i] := DP[i - 1] + DP[i - 2] 가 된다.
정답코드
더보기
'''
'25. 10. 19.(일)
1. 2 * n 타일링을 채우는 방법을 알아내어라
n : 1 1
n : 2 2
n : 3 3
n : 4 5
DP[i] := DP[i - 1] + DP[i - 2]
'''
def solution(n):
MOD = 10**9 + 7
dp = [0] * (n + 1)
dp[0] = dp[1] = 1
for i in range(2, n + 1):
dp[i] = (dp[i-1] + dp[i-2])%MOD
return dp[n]
깃허브 : https://buly.kr/1xzVA6p
'코딩테스트 > programmers' 카테고리의 다른 글
| 프로그래머스 / 구현 / [1차] 프렌즈4블록 (0) | 2025.11.02 |
|---|---|
| 프로그래머스 / 정규표현식, 문자열 / [3차] 파일명 정렬 (0) | 2025.11.01 |
| 프로그래머스 / 구현 / 주차 요금 계산 (0) | 2025.10.18 |
| 프로그래머스 / DP / 숫자 변환하기 (0) | 2025.10.17 |
| 프로그래머스 / 구현 / 스킬트리 (0) | 2025.10.16 |